我已将Spring Boot应用程序打包为.war文件,它在文件路径/opt/tomcat/webapps/myapp.war下的Tomcat 7中运行 .
但是,我想使用/var//application.properties中的文件属性,其中filePath尚未知 . 我已经阅读了Spring Boot docs,我怀疑最好的方法是使用JNDI属性 .
我在context.xml中配置了一个资源,如下所示:
<Resource auth="Container" type="java.lang.String" name="myProperties" url="/var/myDirectory/application.properties"/>
它是否正确?
如果是这样,我怎么能将这些属性注入我的Spring Boot应用程序,考虑到它是.war?
2 回答
回答我自己的问题:)
我将以下内容添加到我的Tomcat context.xml中:
并在Application.java上添加了相应的@PropertySources注释:
所以它从另一个属性获取属性文件路径 . 有点复杂,但它的工作原理 .
欢迎评论!
我在tomcat的catalina.sh中使用了类似这样的东西作为环境变量,spring能够检测到这一点 .
export SPRING_CONFIG_LOCATION = / krishna / software / repository / conf / trimble / application.properties