복붙노트

[SPRING] 봄을 사용하여 속성 파일 재정의

SPRING

봄을 사용하여 속성 파일 재정의

내 봄 (3.1) XML 중 하나에서 정의 된 다음 속성 파일이 있습니다.

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

"MyConfigFile.properties"파일을 덮어 쓰고 두 번째 옵션 속성 파일을 정의 할 수 있기를 원하며 대신에로드됩니다.

다른 말로하면 내 응용 프로그램에 "MyConfigFile.properties"파일을로드하고 싶지만 classpath에서 "StrogerConfigFile.properties"를 사용할 수 있으면 대신로드됩니다.

누구나 Spring XML을 사용하여이를 수행 할 수 있다는 것을 알고 있습니까?

해결법

  1. ==============================

    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에 직접 기본 기본값을 가지며, 특성 파일에서 기본값을 가지며 다른 특성 파일에서 대체 할 수 있습니다.

  2. ==============================

    2.너 해봤 어?

    너 해봤 어?

    <property name="ignoreResourceNotFound" value="true"/>
    <property name="locations">
        <list>
            <value>classpath:default.properties</value>
            <value>classpath:overwrite.properties</value>
        </list>
    </property>
    
  3. from https://stackoverflow.com/questions/12382070/overriding-property-file-using-spring by cc-by-sa and MIT license