首页 文章

Tomcat中的Spring Boot .war - 我可以使用外部属性文件吗?

提问于
浏览
0

我已将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 回答

  • 1

    回答我自己的问题:)

    我将以下内容添加到我的Tomcat context.xml中:

    <Parameter name="agent-tools-api.properties" value="/var/zoona/agent-tools-api.properties" />
    

    并在Application.java上添加了相应的@PropertySources注释:

    @SpringBootApplication
    @PropertySources(@PropertySource(value = {"file:${agent-tools-api.properties}"}))
    public class Application extends SpringBootServletInitializer {
       // Application class
    }
    

    所以它从另一个属性获取属性文件路径 . 有点复杂,但它的工作原理 .

    欢迎评论!

  • 0

    我在tomcat的catalina.sh中使用了类似这样的东西作为环境变量,spring能够检测到这一点 .

    export SPRING_CONFIG_LOCATION = / krishna / software / repository / conf / trimble / application.properties

相关问题