2013-06-04 51 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

相關問題