私の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'}"/>
しかし今回は、実際のプロパティ値を処理/マージするためのより複雑な方法が必要です:(