2012-10-31 106 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中不适用于我。