2013-06-04 56 views
3

我使用maven。我的web应用程序包含两个模块,每个模块都有自己的spring上下文。首先是装在罐子里,第二个是打仗。第二个使用第一个模块的jar并调用它的方法。从另一个模块上下文访问属性文件

我需要添加属性文件,它将被第一个模块使用(通过弹簧上下文)。主要问题是我应该能够在战争部署后访问/编辑这个属性文件。

我该如何提供这样一个属性文件,该文件将在第一个jar模块中使用,并且可以在部署war模块后进行更改?

谢谢。

回答

2

对不起,没有看到问题,你需要更好地描述。从我的理解,这是要走的路:

  1. 地方a.propertiessrc/main/resources的JAR模块中
  2. 使用PropertyPlaceholderConfigurer尽在Spring上下文
  3. 它会在根包装可用属性的JAR的
  4. 的JAR在WAR这又是“类路径的根”的WEB-INF/lib最终可以这么说

更新,2013年6月9日

基本上你似乎在寻找(还是不太清楚)(问题是基于评论上述初步回答更新)是如何加载性能从属性文件而不是打包在您的WAR/JAR中。

在这种情况下,你可以跳过所有上述步骤,除了2

  1. 使用PropertyPlaceholderConfigurer并指定文件的位置,如classpath*:a.properties(见下文)
  2. a.properties上任何地方的类路径之外WAR文件。

警告!当然,你现在可以独立于释放WAR文件来编辑属性,但是由于Spring在应用程序启动时初始化了bean,并且因为所有bean都是单例,所以在重新启动应用程序之前,对属性文件的更改不会生效。

XML例如

<bean class="....PropertyPlaceholderConfigurer"> 
    <property name="location" value="classpath*:a.properties" /> 
+0

是的,它会被装在罐子里的根,并成为它的一部分。所以战争部署后,我将无法更改此属性文件,因为我无法访问该jar的内容。或者我错了? – me1111

+0

正确。如果您需要,请重新说明您的问题。 –

+0

是的,我更新了问题。 – me1111

相关问题