2013-02-19 83 views
2

在我的Spring配置我有以下行:替代屬性和系統屬性在Spring的XML

<context:property-placeholder 
    location="/META-INF/spring/global.properties,#{systemProperties['external.propertyFile'] ?: ''}, /WEB-INF/local.properties" 
    ignore-resource-not-found="true" /> 

我的目的是在global.properties已經運了一些默認值,這些都應該在穿過另一個外部文件是重寫external.propertyFile和一些屬性保持本地應用程序本身local.properties

從我在日誌中看到 - global.propertieslocal.properties被處理的權利,但與#{systemProperties ... }替代似乎並不在這裏工作。

任何提示的如何解決或解決它?

下面是從我的應用程序相關的日誌(縮短了一下):

Loading properties file from ServletContext resource [/META-/spring/counter.properties] 
Loading properties file from ServletContext resource [/#{systemProperties['external.propertyFile'] ?: ''}] 
    WARN support.PropertySourcesPlaceholderConfigurer: Could not load properties from ServletContext resource [/#{systemProperties['external.propertyFile'] ?: ''}]: Could not open ServletContext resource [/#{systemProperties['external.propertyFile'] ?: ''}] 
Loading properties file from ServletContext resource [/WEB-INF/local.properties] 

只是一句話:

在相同的XML配置其他地方的置換工作正常 - 如。搭配:

<util:properties 
    id="myProp" 
    location="#{systemProperties['my.propertyFile'] ?: '/META-INF/spring/my.properties'}"/> 

但這次我需要處理更復雜的方法/合併的實際屬性值:(

+0

如果你使用Maven,採取看看[Maven資源過濾](http://maven.apache.org/guides/getting-started/index.html#How_do_I_filter_resource_files)。 – adarshr 2013-02-19 12:31:48

回答

0

這對我的工作確定

<context:property-placeholder 
    location="/META-INF/spring/global.properties,${external.propertyFile},/WEB-INF/local.properties" 
    ignore-resource-not-found="true" /> 
+0

謝謝 - 似乎我是盲人:( – pagid 2013-02-19 17:49:40