внешний конфиг весенней загрузки с конфиденциальной информацией не работает - PullRequest
3 голосов
/ 05 февраля 2020

Я пытаюсь загрузить внешний yml-файл в мое приложение весенней загрузки. В моем classpath у меня есть 3 yml-файла для профилей dev prod и tls.

Что я собираюсь сделать, это загрузить внешний файл с именем "secret.yml" для переопределения значений в файле application- {profile} .yml.

Этот файл "secret.yml" содержит полезную информацию. Он будет добавлен в файл gitignore.

После некоторых попыток я обнаружил, что spring не переопределяет значения внутри classpath, только если я изменю имя на application- {profile} .yml, а не secret.yml * 1007. *

Я пытался добавить spring.config.name=secret, но это не работает для меня.

./mvnw -Dmaven.test.skip=true -Dspring.config.additional-location=file:./secret.yml -Dspring.config.name=secret.yml

У вас есть какое-либо решение для этой проблемы?

[ОБНОВЛЕНИЕ]

Я делаю экспорт переменной среды export secret="secret.yml", а затем передаю переменную в командную строку

./mvnw -Dmaven.test.skip=true -Dspring.config.additional-location=file:./secret -Dspring.config.name=secret

Ничего не изменилось

Ответы [ 3 ]

1 голос
/ 05 февраля 2020

Попробуйте использовать абсолютный путь, как при весенней загрузке Документация :

java -jar app.jar --spring.config.name=application --spring.config.location=file:///Users/home/secret

Если вы не знаете абсолютный путь, вы можете найти его с помощью pwd команда.

1 голос
/ 05 февраля 2020

если вы передадите несколько файлов конфигурации, позаботьтесь о order, последний будет последовательно переопределен к предыдущей конфигурации.

-Dspring.config.location=classpath:application-1.yaml,classpath:application-2.yaml .. other config

значение application-2.yaml будет переопределено в application-1.yaml если они имеют одинаковый конфиг.

** Это будет объединено для другой конфигурации.

0 голосов
/ 11 февраля 2020

Все пропуски здесь работают, если я перенесу свою командную строку в jvmArguments.

./mvnw  -Dspring-boot.run.jvmArguments="-Dspring.config.additional-location=file:./secrets.yml"

Спасибо за ваш ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...