防止在Java属性中评估系统属性/变量?

时间:2015-06-26 11:10:10

标签: java spring apache-camel

我使用Spring加载属性:

<util:properties id="service-properties">
        ...
        <prop key="postScript"></prop>
        ... 
</util:properties>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" id="propertyConfigurer"><property name="properties" ref="service-properties" />
</bean>

但是,其中一个属性可以具有如下值(这是一个camel xml简单语言片段):

postScript=<setBody><simple>${in.header.type}</simple></setBody>

问题是,当我得到这个属性的值时,它是:

postScript=<setBody><simple></simple></setBody>

我认为它似乎试图解析$ {in.header.type}变量,认为它是一个系统变量可能?

我想知道如何阻止此变量被解决?我试过用引号逃避它但没有好处。

1 个答案:

答案 0 :(得分:0)

从Camel文档中得到了答案: - )

http://camel.apache.org/simple.html

  

替代语法

     

从Camel 2.5开始,您还可以使用使用$ simple {}作为占位符的替代语法。   这可以用于避免在使用Spring属性占位符和Camel时发生冲突的情况。