我使用maven。我的Web应用程序包含两个模块,每个模块都有自己的spring上下文。首先打包到罐子里,第二个打到战争。第二个使用第一个模块的jar并调用它的方法。
我需要添加属性文件,该文件将由第一个模块使用(通过spring上下文)。主要问题是我应该能够在战争部署后访问/编辑这个属性文件。
我如何提供这样的属性文件,该文件将在第一个jar模块中使用,并且可以在war模块部署后更改?
感谢。
答案 0 :(得分:2)
a.properties
放入JAR模块中的src/main/resources
PropertyPlaceholderConfigurer
在Spring上下文中提供属性WEB-INF/lib
,这又是“类路径的根”,可以这么说更新,2013-06-09
(问题根据对上述初步答案的评论进行了更新)
基本上你看起来要寻找的东西(仍然不太确定)是如何从与WAR / JAR打包的非的属性文件中加载属性。
在这种情况下,您可以跳过除2之外的所有上述步骤。
PropertyPlaceholderConfigurer
并将文件的位置指定为classpath*:a.properties
(见下文)a.properties
放在WAR文件外的类路径上的任何位置。警告!当然,您现在可以独立于发布WAR文件编辑属性,但由于Spring在应用程序启动时初始化bean,并且由于默认情况下所有bean都是单例,因此在重新启动应用程序之前,对属性文件的更改将不会生效。
XML示例
<bean class="....PropertyPlaceholderConfigurer">
<property name="location" value="classpath*:a.properties" />