Использование внешних файлов свойств
Ответ лежит на весенних загрузочных документах, я попытаюсь сломать их для вас.
Прежде всего, нет, вы не должны использовать @PropertySource
при работе с конфигурацией Ямля, как упоминается здесь в недостатках Ямла :
Файлы YAML не могут быть загружены через аннотацию @PropertySource. Таким образом, в случае, когда вам нужно загрузить значения таким образом, вам нужно использовать файл свойств.
blockquote>Итак, как загружать нужные файлы? Это объясняется здесь Файлы свойств приложения
Один загружен для вас:
application.yml
, поместите его в одну из каталогов, как указано в ссылке выше. Это отлично подходит для вашей общей конфигурации.Теперь для вашей конкретной конфигурации (и таких как пароли) вы хотите использовать внешние файлы свойств, как это сделать, также объясняется в этом разделе:
Если вам не нравится application.properties в качестве имени файла конфигурации, вы можете переключиться на другой, указав свойство среды spring.config.name. Вы также можете обратиться к явному местоположению, используя свойство среды spring.config.location (список разделов, разделенных запятыми, или пути к файлам).
blockquote>Таким образом, вы используете среду
spring.config.location
имущество. Представьте, что у вас есть внешний файл конфигурации:application-external.yml
в conf / dir в вашем домашнем каталоге, просто добавьте его следующим образом:-Dspring.config.location=file:${home}/conf/application-external.yml
в качестве параметра запуска вашей JVM. Если у вас несколько файлов, просто разделите их запятой. Обратите внимание, что вы можете легко использовать внешние свойства, подобные этому, чтобы перезаписать свойства, а не просто добавлять их.Я бы посоветовал проверить это, заставив ваше приложение работать только с вашим внутренним файлом application.yml, а затем перезаписать свойство (test) в вашем файле внешних свойств и зарегистрировать его значение где-нибудь.
Привязать свойства Ямля к объектам
При работе с свойствами Ямла я обычно загружаю их с помощью
@ConfigurationProperties
, что отлично подходит для работы с примерами списков или более сложной структурой свойств. (Вот почему вы должны использовать свойства Yaml, для простых свойств вы, возможно, лучше используете обычные файлы свойств). Прочтите это для получения дополнительной информации: Свойства конфигурации типа SafeДополнительно: загрузка этих свойств в тесте IntelliJ, Maven и JUnit
Иногда вы хотите загрузить эти свойства в ваших сборках maven или при выполнении тестов. Или просто для локального развития с вашей IDE
Если вы используете IntelliJ для разработки, вы можете легко добавить это, добавив его в свою конфигурацию Run Tomcat: «Запустить» -> «Изменить конфигурации», выберите конфигурацию запуска в «Сервер Tomcat», проверьте вкладку «Сервер» и добавьте ее в «Параметры VM».
Чтобы использовать внешние файлы конфигурации в своей сборке Maven: настройте плагин maven surefire, как это, в вашем pom.xml:
org.apache.maven.plugins maven-surefire-plugin -Dspring.config.location=file:${home}/conf/application-external.yml При запуске тестов JUnit в IntelliJ:
- Run → Edit Configurations
- По умолчанию → JUnit
- добавить параметры VM ->
-ea -Dspring.config.location=file:${home}/conf/application-external.yml