2012-10-31 12 views
5

chcę uciec mój plik propeties Wiosna w celu uzyskania w mojej własności Fasola: ${ROOTPATH}/relativePathUcieczka referencyjny nieruchomości w Spring pliku właściwości

Mam proste wiosna pliku konfiguracyjnego, który zawiera:

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

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

myprops.properties zawiera:

myproperty=\${ROOTPATH}/relativePath 

Powyższa konfiguracja wraca: nie można rozwiązać zastępczy 'ROOTPATH'. Próbowałem wielu możliwych składni, ale nie byłem w stanie znaleźć właściwego.

+0

Rok bez komentarza. Czy rozwiązałeś ten problem? –

Odpowiedz

7

Zamiast ${myproperty} użyj #{'$'}{myproperty}. Po prostu zamień $ na #{'$'}.

+0

Byłoby pomocne wyjaśnienie, dlaczego to działa. –

+0

Nie, to nie zadziała. Postąpiłby jako '$ {myproperty}' wstrzyknięty do myBean.myProperty dosłownie zamiast '$ {ROOTPATH}/relativePath'. – coolersport

+0

Zależy od tego, co chcesz osiągnąć. Myślę, że musisz umieścić to dosłownie jako wartość dla myProperty. Jeśli chcesz rozwiązać ROOTPATH ​​skądś, np. właściwości systemu można użyć Spring Expression Language SpEl. Na przykład coś takiego: '# {systemProperties ['ROOTPATH']}/relativePath' – user2428804

1

Wydaje się tak daleko, że nie sposób uciec ${}, jednak można spróbować poniżej konfiguracji, aby rozwiązać problem

dollar=$ 

myproperty=${dollar}{myproperty} 

Wynik dla myProperty będzie ${myproperty} po ocenie.

1

Here to bilet wiosenny, który prosi o pomoc (wciąż nierozstrzygniętą w momencie pisania).

Obejście korzystania

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

ma stanowić rozwiązanie, ale wygląda dość brudny.

Używanie wyrażeń SPEL takich jak #{'$'} nie działa dla mnie przy Spring Boot 1.5.7.

Powiązane problemy