在我的 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'}"/>
但是这次我需要一种更复杂的方法来处理/合并实际的属性值:(