복붙노트

[SPRING] Spring 속성 파일에서 Escape 속성 참조

SPRING

Spring 속성 파일에서 Escape 속성 참조

빈 속성을 사용하기 위해 Spring 속성 파일을 이스케이프하고 싶다 : $ {ROOT PATH} / relative path

간단한 스프링 설정 파일을 포함하고 있습니다 :

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

<bean id="myBean" class="spring.MyBean">
    <property name="myProperty" value="${myproperty}" />
</bean> 

myprops.properties에는 다음이 포함됩니다.

myproperty=\${ROOTPATH}/relativePath

위의 설정에서 다음을 반환합니다. 'ROOTPATH'자리 표시자를 확인할 수 없습니다. 가능한 많은 구문을 시도했지만 올바른 구문을 찾을 수 없었습니다.

해결법

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

    1.$ {myproperty} 대신 # { '$'} {myproperty}를 사용하십시오. $를 # { '$'}로 바꾸기 만하면됩니다.

    $ {myproperty} 대신 # { '$'} {myproperty}를 사용하십시오. $를 # { '$'}로 바꾸기 만하면됩니다.

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

    2.지금까지는 $ {}을 (를) 벗어날 수있는 방법이 없지만 구성을 시도하여 문제를 해결할 수 있습니다.

    지금까지는 $ {}을 (를) 벗어날 수있는 방법이 없지만 구성을 시도하여 문제를 해결할 수 있습니다.

    dollar=$
    
    myproperty=${dollar}{myproperty}
    

    myproperty에 대한 결과는 평가 후 $ {myproperty}입니다.

  3. ==============================

    3.여기에 지원 요청을 피하는 Spring 티켓이 있습니다 (아직 작성 시점에는 해결되지 않았습니다).

    여기에 지원 요청을 피하는 Spring 티켓이 있습니다 (아직 작성 시점에는 해결되지 않았습니다).

    사용 방법의 해결 방법

    $=$
    myproperty=${$}{ROOTPATH}/relativePath
    

    해결책을 제공하지만 상당히 더러워 보입니다.

    스프링 부트 1.5.7에서는 # { '$'}와 같은 SPEL 표현식을 사용하지 못했습니다.

  4. from https://stackoverflow.com/questions/13162346/escape-property-reference-in-spring-property-file by cc-by-sa and MIT license