У меня есть приложение Spring Boot 2.0.5, которое должно считывать свойства из 3 разных файлов:
First: classpath:/application.properties
Second: file:/./common.properties
Last: file:/./distro.properties
3 файла имеют общие свойства, которые должны быть перезаписаны в указанном порядке.
Я прочитал ( официальную документацию для Externalized свойств Spring ).
Поэтому я попытался создать свой класс @configuration
с аннотацией PropertySources, подобной этой
@PropertySources(
value = {
@PropertySource(value = "classpath:application.properties", ignoreResourceNotFound = false),
@PropertySource(value = "file:${common.properties}", ignoreResourceNotFound = false),
@PropertySource(value = "file:${distro.properties}", ignoreResourceNotFound = false)
}
)
, затем я настраиваю common.properties
и distro.properties
из командной строки при запуске
Однако порядок или разбор 3 файлов, которые я написал, игнорируется и используется поведение Spring по умолчанию, поэтомуapplication.properties переопределяет внешние свойства.Что я делаю не так?
Я также пытался переопределить обе конфигурации spring.config.additional-location
и spring.config.location
, чтобы принудительно установить правильный порядок с помощью
classpath:/,file:./
, но ничего не изменилось