我已经使用Spring Boot
几周了,而且我已经习惯使用application.properties
文件了。我可以将其用于简单部署,并与java jar
或mvn spring-boot:run
一起使用。
现在我尝试将我的应用程序部署到Tomcat 8.0.15
应用程序服务器。我一直在阅读文档,但我无法部署war
文件,因为Tomcat无法找到这个着名的application.properties
文件。我的观点是,如果我想把这个文件放在war
之外,那么在我的Tomcat安装中我应该把它放到哪里自动读取?
答案 0 :(得分:6)
如果您以后不想更改它,只需将其放在类路径的根目录中,例如:如果是Maven项目那么
<project-folder>/src/main/java/
如果您想稍后更改它而不重建WAR,那么在Tomcat属性文件
中catalina.properties
有
shared.loader=
使得已部署应用程序可访问等号后列出的属性文件。更好地使用绝对路径。
顺便说一句,我现在会选择使用基于注释的配置,但话说再说一次,如果没有重建WAR,它就不会有变化的感觉。答案 1 :(得分:2)
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
对战争来说,这应该是一样的(类路径根看起来对我来说最合适)。
答案 2 :(得分:2)
您可以提供属性文件的位置作为&#34; JAVA_OPTS&#34;的一部分。在catalina.sh/catalina.batch或setEnv.bat / setEnv.sh中。 设置JAVA_OPTS = -Dspring.config.location = file:/ D:/Appconfig/application.properties
仅供参考:如果外部战争并且如上所述定义,则不会通过spring boot加载application.yaml。