Overriding property file using spring

风格不统一 提交于 2019-11-29 15:16:42

问题


I have the following property file defined in one of my Spring (3.1) XMLs:

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

I want to be able to define a second optional property file which will override the "MyConfigFile.properties" file and will get loaded instead of it.

In Other words I want my application to load the "MyConfigFile.properties" file, but if a "StrogerConfigFile.properties" will be available at the classpath- it will get loaded instead.

Anyone knows how it can be done using the Spring XML?


回答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>

This is a setup I use that is pretty flexible. Allows you to have basic default values directly in the xml, defaults in a properties file and overrides in another properties file.




回答2:


have you tried

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


来源:https://stackoverflow.com/questions/12382070/overriding-property-file-using-spring

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!