Spring Boot - 部署到Tomcat时放置属性文件的位置?

时间:2014-12-03 09:33:18

标签: java spring tomcat spring-boot

我已经使用Spring Boot几周了,而且我已经习惯使用application.properties文件了。我可以将其用于简单部署,并与java jarmvn spring-boot:run一起使用。

现在我尝试将我的应用程序部署到Tomcat 8.0.15应用程序服务器。我一直在阅读文档,但我无法部署war文件,因为Tomcat无法找到这个着名的application.properties文件。我的观点是,如果我想把这个文件放在war之外,那么在我的Tomcat安装中我应该把它放到哪里自动读取?

3 个答案:

答案 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。