4

Spring(3.1)XMLの1つで次のプロパティファイルを定義しています。

<context:property-placeholder location="classpath:MyConfigFile.properties"/> 

「MyConfigFile.properties」ファイルをオーバーライドし、その代わりにロードされる2番目のオプションのプロパティファイルを定義できるようにしたいと思います。

言い換えると、アプリケーションに「MyConfigFile.properties」ファイルをロードしたいのですが、「StrogerConfigFile.properties」がクラスパスで使用できる場合は、代わりにロードされます。

Spring XMLを使用してそれを行う方法を知っている人はいますか?

4

2 に答える 2

13
<context:property-placeholder location="file:///[path]/override1.properties, file:///[path]/override2.properties" properties-ref="defaultProps" />


<bean id="defaultProps" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
        <array>
            <value>classpath:default1.properties</value>
            <value>classpath:default2.properties</value>
        </array>
    </property>
    <property name="properties">
        <util:properties local-override="true">
            <prop key="some.property">some value</prop>
        </util:properties>
    </property>
</bean>

これは私が使用する非常に柔軟な設定です。基本的な既定値を xml に直接設定し、既定値をプロパティ ファイルに設定し、オーバーライドを別のプロパティ ファイルに設定できます。

于 2012-09-12T07:05:46.800 に答える
1

やってみました

<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
    <list>
        <value>classpath:default.properties</value>
        <value>classpath:overwrite.properties</value>
    </list>
</property>
于 2012-09-12T06:29:06.543 に答える