Лучший способ получить доступ к нескольким свойствам и динамически назначить весеннюю загрузку

как лучше всего представить следующие свойства в Spring для каждой категории? В настоящее время мы реализовали для свойств aaa. У нас всегда есть два поля для каждой категории.

Мы хотим использовать один и тот же POJO для всех категорий. Пожалуйста, предложите лучший подход, который подходит.

Имя файла свойств пакет.свойства

category.aaa.field1 = value1
category.aaa.field2 = value2

category.bbb.field1 = value1
category.bbb.field2 = value2

category.ccc.field1 = value1
category.ccc.field2 = value2

category.ddd.field1 = value1
category.ddd.field2 = value2

Мы создали POJO с

@Data    
public class CategoryPojo{
    private String valueOne;
    private String valueTwo;

}

мы читаем это в @Configuration, используя @PropertySource

@Configuration
@ComponentScan(value = "com.category")
@PropertySource("classpath:package.properties")
public class CategoryConfig{
    @Value("${category.aaa.field1}")
    private String fieldOne;

    @Value("${category.aaa.field2}")
    private String fieldTwo;

    @Bean(name = "getACategory")
    public CategoryPojo getFields() {
        return new CategoryPojo(fieldOne, fieldTwo);
    }

}

Поскольку вы используете весеннюю загрузку, вы можете воспользоваться docs.spring.io/spring-boot/docs/current/reference/html/…

Darren Forsythe 09.04.2019 18:32
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
1 660
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете и должны использовать https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties

Чтобы справиться с этим.

@Data
@ConfigurationProperties(prefix = "category")
public class MyProperties{

private CategoryPojo aaa;
private CategoryPojo bbb;
private CategoryPojo ccc;
private CategoryPojo ddd;


@Data    
public static class CategoryPojo{
    private String valueOne;
    private String valueTwo;

}


}

Затем вы можете поместить @EnableConfigurationProperties(classes = MyProperties.class) в свой основной класс приложения или другой @Configuration, а затем @Autowire в свой класс MyProperties, где это необходимо.

Другие вопросы по теме