次の Spring XML ベースの構成があります。
<!--
These properties define the db.type property.
-->
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="order" value="1"/>
<property name="ignoreUnresolvablePlaceholders" value="true" />
<property name="ignoreResourceNotFound" value="true" />
<property name="locations">
<list>
<!-- contains default db.type -->
<value>classpath:/default-cfg.properties</value>
<!-- db.type can be overridden by optional properties in the app work dir -->
<value>file:${app.work.dir}/cfg.properties</value>
</list>
</property>
</bean>
<!-- db.type should be used to get DB specific config properties -->
<bean class="org.springframework.context.support.PropertySourcesPlaceholderConfigurer">
<property name="order" value="2"/>
<property name="ignoreUnresolvablePlaceholders" value="false" />
<property name="ignoreResourceNotFound" value="false" />
<property name="locations">
<list>
<!-- does not work, ${db.type} does not get resolved -->
<value>classpath:/default-cfg-${db.type}.properties</value>
</list>
</property>
</bean>
問題は、最初のプロパティ プレースホルダー コンフィギュアラーによって定義されているにclasspath:/default-cfg-${db.type}.properties
もかかわらず、その場所のプロパティが解決されないことです。db.type
ログに次のエラーが表示され続けます。
class path resource [default-cfg-${db.type}.properties] cannot be opened because it does not exist
PropertyPlaceholderConfigurer の locations 属性でプロパティを使用する方法はありますか? JVM システム プロパティを使用して db.type 値を設定することは避けたいと考えています。
ありがとう、ジャン