使用弹簧重写属性文件(Overriding property file using spring)

2019-06-28 05:44发布

我在我的春天(3.1)个XML的一个定义了以下属性文件:

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

我希望能够以界定第二可选属性文件,该文件将覆盖“MyConfigFile.properties”文件,将被装载,而不是它。

换句话说,我希望我的应用程序加载“MyConfigFile.properties”的文件,但如果“StrogerConfigFile.properties”将可在classpath-它会被加载来代替。

任何人都知道如何将它使用Spring XML做什么?

Answer 1:

<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基本默认值,在属性默认文件,并在另一个属性忽略文件。



Answer 2:

你有没有尝试过

<property name="ignoreResourceNotFound" value="true"/>
<property name="locations">
    <list>
        <value>classpath:default.properties</value>
        <value>classpath:overwrite.properties</value>
    </list>
</property>


文章来源: Overriding property file using spring