#java #spring #spring-boot
#java #spring #spring-boot
Вопрос:
Есть ли способ импортировать все файлы конфигурации в каталог без необходимости явно указывать их профили / имена файлов один за другим?
Я думал об использовании spring.config.import
, но, похоже, он не поддерживает указание каталога или шаблона для динамического импорта любых файлов конфигурации, содержащихся в каталоге.
Например:
У меня есть основная конфигурация application.yml
и дочерние конфигурации в config/
каталоге, который содержит application-test1.yml
, application-testN.yml
и так далее. Я хочу автоматически загружать все файлы конфигурации в каталог, не указывая их явно application.yml
.
Я пробовал их ниже, но они не работают.
spring
config
import: classpath:config/
spring
config
file: file:config/*/
Ответ №1:
spring.config.location=classpath:/custom-config/
Это должно загрузить конфигурацию из указанной папки. В соответствии с различными конфигурациями профилей будет импортирована только конфигурация активных профилей, поэтому вам необходимо убедиться, что загружаемый стандартный файл конфигурации активирует эти профили (например, с помощью spring.profiles.include
)
Дополнительные ссылки:
Комментарии:
1. Хм, похоже, в моем случае это не работает. Я добавил
spring.config.location=classpath:config/
(с синтаксисом yaml) к основномуapplication.yml
, но дочерние конфигурационные файлы в каталоге не были загружены.2. Я понял, что мой вопрос, вероятно, был недостаточно ясен. Я только что обновил его.
3. путь к классу:config/ уже должен быть проверен Spring по умолчанию. Если он не распознает внутреннюю конфигурацию, это просто потому, что он связан с профилями, которые не включены при запуске вашего приложения. Вы можете указать активные профили несколькими способами, например.: mvn spring-boot:run -Dspring-boot.run.profiles=dev,test1,test2,someOtherProfile ИЛИ через приложение. yml с использованием spring.profiles.include / spring.profiles.active
4. Это проблема, которую я пытаюсь решить. Есть ли в любом случае необходимость не указывать явно профили один за другим? Не похоже, что я могу использовать шаблоны?