Решение для Spring Boot 1.5.X
Вы можете добавить папку в качестве настраиваемого расположения конфигурации, запустив приложение со следующим аргументом JVM:
-Dspring.config.location=file:${user.home}/file/path/
С этим настроенным аргументом JVM все application-{profile}.properties
файлы в этой папке будут автоматически разрешены.
(В качестве альтернативы, если вы предпочитаете использовать переменные среды вместо аргументов JVM, вы можете сделать то же самое, установивПеременная среды SPRING_CONFIG_LOCATION, например, с помощью следующей команды в терминале Linux: export SPRING_CONFIG_LOCATION=file:${user.home}/file/path/
)
Теперь, если у вас есть файл application-dev.properties
в папке пользовательских настроек, этого должно быть достаточно для активации профиля вфайл по умолчанию application.properties
, добавив:
spring.profiles.active=dev
Наконец, аннотация @PropertySources
является избыточной, и вы можете удалить ее:
@Component
public class PropConfig implements InitializingBean {
Ссылка: https://docs.spring.io/spring-boot/docs/1.5.0.RELEASE/reference/html/boot-features-external-config.html
Решение для Spring Boot 2.X
Подход в основном такой же, как для Spring Boot 1.5.X, но с небольшой разницей.
В спринтеg Boot 2.X поведение аргумента spring.config.location
немного отличается от предыдущих версий.Разница в том, что в Spring Boot 2.X аргумент spring.config.location
переопределяет местоположения конфигурации по умолчанию:
Когда настраиваемые местоположения конфигурации настраиваются с помощью spring.config.location, они заменяют местоположения по умолчанию.(Источник: Spring Boot Documentation )
Поскольку установка этого аргумента в пользовательскую папку конфигурации приведет к переопределению местоположений по умолчанию (я предполагаю, что потеря файлов конфигурации в местоположениях конфигурации по умолчаниюне желаемое поведение), лучше использовать новый аргумент spring.config.additional-location
, который не переопределяет, а только расширяет местоположения по умолчанию:
-Dspring.config.additional-location=file:${user.home}/file/path/
(В качестве альтернативы вы можете использовать переменную среды SPRING_CONFIG_ADDITIONAL-LOCATIONесли вы предпочитаете использовать переменные окружения вместо аргументов JVM)
Ссылка: https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html