Я изучаю внешнюю конфигурацию весенней загрузки. Я бы хотел, чтобы мое приложение считывало конфигурацию из любого внешнего файла (/Users/<userid>/application.properties
).
Я создал проект Spring-Web и добавил запись spring.config.location=${user.home}
в src/main/resource/application.properties
testConfig
это имя свойства конфигурации, к которому я пытаюсь получить доступ с помощью приведенного ниже кода в моем классе контроллера.
@Value("${testConfig})
private String configValue;
Я дал разные значения для testConfig
в разных местах.
testConfig=InsideJar
insrc/main/resources/application.properties
файл. testConfig=ApplicationRoot
в корневом каталоге проекта application.properties
файл.
testConfig=homeDir
в домашнем каталоге пользователя /User/<userid>/application.properties
файл.
Как я запустил приложение и каков результат?
1. From different directory than project root
Команда : java -jar ../Downloads/first-springboot-app/target/first-springboot-app-0.0.1-SNAPSHOT.jar
-Dspring.config.location=file:/User/${LOGNAME}/application.properties
Результат : InsideJar
Ожидаемый результат : homeDir
.
2. From Project root directory
Команда : java -jar target/first-springboot-app-0.0.1-SNAPSHOT.jar -Dspring.config.location=file:/Users/${LOGNAME}/application.properties
Результат : applicationRootDir
Ожидаемый результат : homeDir
3. Added spring.config.name=application
4. Added spring.config.name=application.properties
Оба вышеприведенных (3,4) дали одинаковый результат.
Результат : applicationRootDir
Ожидаемый результат : homeDir
.
Я уже прошел по ссылкам ниже и другим блогам.
Springboot doc
SO , SO .
Вопрос / проблема : Почему значение (homeDir
) не взято из Users/<userid>/application.properties
?
Любая помощь будет высоко оценена.