Внешняя конфигурация при загрузке пружины
При использовании Spring Boot существуют документированные соглашения об именах и структура каталогов. Приложение Spring Boot ищет свойства для загрузки из списка приоритетов, поэтому есть предложения, которые вы должны рассмотреть:
- Используйте флаг командной строки
spring.config.location
, чтобы указать конкретный файл или каталог, из которого можно загрузить источники свойств. Вы можете использовать это, чтобы указать каталоги для поиска или отдельные файлы для загрузки. Будьте осторожны при загрузке отдельных файлов, если вы собираетесь использовать свойства на основе профиля. (добавьте флаг в команду следующим образом: java -jar MyJar.jar --spring.config.location=D:\test\
)
- По умолчанию Spring Boot ищет каталог ./config/, в котором находится WAR, и каталог самой WAR, поэтому вы можете поместить «application.properties» в любую позицию, и он будет загружен.
Pivotal предоставляет отличную справочную информацию о Spring Boot. Раздел 24 охватывает свойства более широко, чем я могу в посте.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html (* ссылки на ссылки на самый последний выпуск)
Примечание: я не пользователь Windows, поэтому будьте осторожны при вставке в этот путь к файлу выше. Отредактируйте меня.
Расширение конфигурации до развертываемых пакетов
Обычно Spring Boot упаковывает в исполняемый файл WAR или JAR со встроенным механизмом контейнера сервлетов, который используется для среды выполнения. Однако в вашем случае вы упаковываете обычный WAR и развертываете его во внешнем экземпляре Tomcat, поэтому параметры конфигурации должны передаваться через Tomcat с использованием переменной JAVA_OPTS.
Для Apache Tomcat принято размещать ваши свойства в ${catalina_base}/conf
, где catalina.base указывает на местоположение экземпляра Tomcat. Я только что создал рабочую демонстрацию, выполнив следующие действия:
- Во-первых, следуйте разделу 88.1 справки для настройки базового приложения WAR
mvn package
- Поместите application.properties в каталог conf внутри Tomcat
set JAVA_OPTS=-Dspring.config.location=${catalina.base}/conf/
"%CATALINA_HOME%"\bin\startup
- Deploy
Это не самый чистый конвейер развертывания, но если вам нужно использовать внешний экземпляр Tomcat, то это будет работать. Однако запуск нескольких приложений с отдельными файлами свойств в одном экземпляре Tomcat усложнит ситуацию. В этом случае использование Spring Framework (не Boot) будет проще в настройке.