【问题标题】:Prevent system properties/variables being evaluated in Java properties?防止在 Java 属性中评估系统属性/变量?
【发布时间】:2015-09-13 07:40:47
【问题描述】:

我正在使用 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>

但是,其中一个属性可以具有如下值(这是骆驼 xml 简单语言 sn-p):

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

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

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

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

我想知道如何阻止这个变量被解析?我试过用引号转义它,但没有用。

【问题讨论】:

标签: java spring apache-camel


【解决方案1】:

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

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

替代语法

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多