Spring:在Jar文件外部的属性文件时配置PropertyPlaceHolder

时间:2017-03-13 06:42:07

标签: java spring maven executable-jar properties-file

我有一个基于SPRING 2.5.6的项目,我的属性文件在可执行的Jar文件之外,如

./ |---MyApplication.Jar |---MyApplication.properties

我不知道如何配置PropertyPlaceholderConfigurer,以便它可以选择JAR文件的文件或弹簧可以知道属性文件位置的任何其他方式。换句话说,如何将Jar根路径放在类路径中,因为spring可以自动从类路径中选择属性文件。

我已阅读以下问题,但并未详细说明如何配置PropertyPlaceholderConfigurer。

Read properties file outside JAR file

Add properties file to build path of runnable jar

java -jar -cp。 ./main.jar 我知道这种方法将根路径添加到类路径中,但我的客户端不希望通过命令行或批处理文件运行jar。那么有没有办法以某种方式配置Spring?

我认为可能的解决方案是在xml基本配置旁边进行JAVA基本配置。

3 个答案:

答案 0 :(得分:0)

java -jar -cp . ./main.jar

更改运行命令。

答案 1 :(得分:0)

解决方案 - 要获取jar所在的目录,可以使用spel。 以下内容可以帮助你。

  <context:property-placeholder location="file:///#{T(java.lang.Object. getClass().getProtectionDomain().getCodeSource().getLocation‌​())}/ application.properties"/>

答案 2 :(得分:-2)

您可以使用Maven或Gradle来管理您的项目,他可以帮助您自动添加依赖项,您不需要手动导入Jar包。