2

在我的 Spring 配置中,我有以下行:

<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.properties并且local.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'}"/>

但是这次我需要一种更复杂的方法来处理/合并实际的属性值:(

4

1 回答 1

0

这对我来说没问题

<context:property-placeholder
   location="/META-INF/spring/global.properties,${external.propertyFile},/WEB-INF/local.properties"
   ignore-resource-not-found="true" />
于 2013-02-19T14:02:47.330 回答