Аналог аннотаций Spring для свойства-заполнителя

У меня есть конфигурация Spring XML. Мне нужно переписать его, используя аннотации Spring.

Вопрос прямой: есть ли прямая альтернатива Spring XML-оператору <context:property-placeholder location = "classpath*:META-INF/*.properties"/> среди аннотаций Spring, которая будет работать с замаскированными местоположениями, как в примере (classpath*:META-INF/*.properties)? Или какая-нибудь альтернатива, которая просканирует мой путь к классам и найдет там все файлы свойств.

Я пробовал @PropertySource, но похоже, что я не понимаю маскировку. Указание прямых путей к файлам свойств в моем случае не вариант, потому что их количество может меняться независимо.

0
0
315
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Альтернативой, которую я искал, было объявление этого компонента в конфигурации:

@Bean
public static PropertySourcesPlaceholderConfigurer propPlaceholder() throws Exception {
    PropertySourcesPlaceholderConfigurer propertyConfigurer = new PropertySourcesPlaceholderConfigurer();
    propertyConfigurer.setLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:META-INF/*.properties"));
    return propertyConfigurer;
}

Это не аннотация, а замена этого оператора XML.

Вы можете использовать класс ConfigurableApplicationContext, а также загружать файлы свойств из разных мест, а также следующим образом:

    ConfigurableApplicationContext appContext = new SpringApplicationBuilder(Application.class)
                .properties("spring.config.name:application,application2",
                        "spring.config.location:classpath:/external/application/properties/,classpath:/external/application2/properties")
                .build().run(args);


    ConfigurableEnvironment env = applicationContext.getEnvironment();

где значение в разделе «spring.config.name» указывает имя файлов свойств (здесь application.properties и application2.properties), а значения в разделе «spring.config.location» указывают путь к вышеупомянутым файлам приложений соответственно.

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