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 に答える