Spring Загрузка - Где разместить файлы свойств при развертывании в Tomcat?

Я использую Spring Boot уже несколько недель, и я привык работать с файлом application.properties. Я могу использовать его для простого развертывания и использовать с java jar или mvn spring-boot:run.

Теперь я пытаюсь развернуть свое приложение на сервере приложений Tomcat 8.0.15. Я читал документацию, но я не могу развернуть файл war, потому что Tomcat не может найти этот знаменитый application.properties файл. Я хочу сказать, что если я хочу вывести этот файл из war, где в моей установке Tomcat я должен положить его для автоматического чтения?

3 ответа

Если вы не хотите позже его менять, просто поместите его в корень вашего пути к классам, например. если это проект Maven, то внутри

<project-folder>/src/main/java/
</project-folder>

Если вы хотите изменить его позже, не перестраивая WAR, то в файле свойств Tomcat

catalina.properties

существует

shared.loader=

который делает файлы свойств, перечисленные после знака равенства, доступным для развернутых приложений. Лучше использовать абсолютные пути.

Кстати, я бы предпочел использовать настройку на основе аннотаций в наши дни, но опять же, у нее нет комфорта для изменения без восстановления WAR.


Вы можете указать местоположение файла свойств как часть "JAVA_OPTS" в файле catalina.sh/catalina.batch или setEnv.bat/setEnv.sh. set JAVA_OPTS = -Dspring.config.location = файл:/D:/Appconfig/application.properties

Только для информации: application.yaml не загружается при загрузке spring при внешней войне и определяется как указано выше.


Spring загружает свойства из

1) A /config subdir of the current directory.
 2) The current directory
 3) A classpath /config package
 4) The classpath root

См. документы (23.2 Файлы свойств приложения): http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-features-external-config-application-property-files

Это должно работать одинаково для войны (для меня самый лучший вариант для корня classpath).

licensed under cc by-sa 3.0 with attribution.