我正在使用Java 1.6和Spring 3.1.1。我試圖將外部屬性文件讀入Spring上下文中。以下是難點:第一個屬性文件包含下一個屬性文件的路徑。例如:在Spring上下文中導入/過濾屬性
首先屬性文件在$ {的user.home}:
resource.dir=C:/users/smith
config.dir=${resource.dir}/configuration
第二屬性文件$ {config.dir}(在第一屬性文件中定義):
datasource.name=jdbc:mysql://dbserver:3306/test
datasource.prop1=etc
datasource.prop2=etc
所以我需要讀取第一個文件,處理這些屬性,並使用它們到達第二個文件。
使用Spring PropertyPlaceholderConfigurer只讓我到第一個文件。我已經讀過,你的應用上下文中只能有一個PropertyPlaceholderConfigurer,這似乎是真的。 [編輯:見解https://jira.springsource.org/browse/SPR-6428。]
任何人都知道最好的方法來做到這一點?
編輯:這顯然很容易做到,如果你正在ant中運行構建,不幸的是我的項目使用Maven。你使用PROPERTY標籤完成第一步,它會自動地解析下一步的所有內容,允許你將類路徑設置爲$ {cfg.dir}目錄等等。然後你可以從「正常」中讀取屬性這些目錄。我希望春天或Maven,讓我相同的功能,但是暫時還沒有發現答案...
ANT例如:
<property file="${user.home}/global.properties" />
<target name="run-some-stuff">
<java classname="com.mystuff.App" failonerror="true" fork="yes">
<classpath>
<path location="${cfg.dir}" />
<path location="${resource.dir}" />
</classpath>
</java>
</target>
這可能不會對你有所幫助,但它可能有多個佔位符配置器;您可以爲每個配置器分配一個不同的佔位符前綴。 – dnault 2012-08-14 18:56:13
是的,但在這種情況下,這並不能幫助我。我在這裏找到了對這個限制的解釋:https://jira.springsource.org/browse/SPR-6428 – user1071914 2012-08-15 02:09:39