2012-10-31 55 views
5

我想逃離我的春節化子性質的文件,以便在我的bean屬性來獲取:${ROOTPATH}/relativePath逃生春屬性文件屬性引用

我有一個包含一個簡單的Spring配置文件:

<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'。我嘗試了很多可能的語法,但無法找到合適的語法。

+0

一年沒有任何評論。你解決了這個問題嗎? –

回答

7

而不是${myproperty}使用#{'$'}{myproperty}。只需將$替換爲#{'$'}即可。

+0

這將有助於解釋爲什麼這會起作用。 –

+0

不,它不會工作。它可以通過'$ {myproperty}'注入myBean.myProperty而不是'$ {ROOTPATH}/relativePath'來解決。 – coolersport

+0

取決於你想達到什麼目的。我想你需要把它作爲價值myProperty。 如果您想從某處解析ROOTPATH,系統屬性可以使用Spring Expression Language SpEl。例如像這樣: '#{systemProperties ['ROOTPATH']}/relativePath' – user2428804

1

似乎到目前爲止,這是沒有辦法逃避${},不過你可以試試下面的配置來解決這個問題

dollar=$ 

myproperty=${dollar}{myproperty} 

結果爲myProperty的將是${myproperty}評估後。

1

Here是一個請求逃避支持的彈簧票(在撰寫本文時尚未解決)。

使用

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

並提供解決方案的解決辦法,但看起來很骯髒。

使用SPEL表達式如#{'$'}在Spring Boot 1.5.7中不適用於我。