引用 .war 外部的 configuration.properties

2022-09-02 04:11:13

我想部署一场战争,战争应该从战争之外获取一些属性(比如说.war文件在哪里,同一个目录。

目前,这是我找到的最佳解决方案:

<context:property-placeholder location="file:${user.home}/configuration.properties" ignore-unresolvable="true"/>

但是这个解决方案迫使我始终将其保留在主目录中。我希望它位于我部署我的.war的tomcat webapps目录中。我只是在寻找一个涉及绝对路径的解决方案。如果相对路径是绝对不可能的,那么我会考虑一个绝对路径。

提前致谢。


答案 1

这里有一个解决方案:

<context:property-placeholder 
     location="file:${catalina.home}/webapps/datasource.properties"
     ignore-unresolvable="true"/>

让我知道,如果有什么更好,例如,如果我可以摆脱卡塔利娜家庭参考,并以某种方式使它成为一个更一般的参考。


答案 2

我可以提供的一个解决方案是使用系统属性将路径传递到配置文件。

有 2 个级别的属性:

  • 使用开关 -D 发送到 JVM 的 java 系统属性,并由System.getProperty()
  • 您在操作系统级别定义的操作系统环境变量,可以使用System.getenv()

推荐