如何使用mule全局属性初始化bean

时间:2016-03-09 02:29:23

标签: spring mule

我有一个bean,我想从全局属性

初始化
<global-property name="logging.prefix" value="#[message.id]-Task-#[message.inboundProperties.'http.query.params'.TaskId] - " doc:name="Global Property"/>
<spring:beans>
    <spring:bean id="MyBean" name="MyBean" class="com.my.bean" >
        <spring:constructor-arg index="0" type="String" name="logPrefix" value="${logging.prefix}">
            <spring:description>Logging prefix</spring:description>
        </spring:constructor-arg>
    </spring:bean>
</spring:beans>

构造我的bean时,我得到了MEL表达式的字符串文字。当我在流程中引用$ {logging.prefix}时,我得到了评估的MEL。有没有办法让我初始化我的bean而不重复我的bean构造函数和全局属性中的MEL表达式?

我已经尝试过#[$ {logging.prefix}],但也无效。

修改

我尝试在bean构造函数的value属性中复制MEL表达式,这也传入了文字

<spring:constructor-arg index="0" type="String" name="logPrefix" value="#[message.id]-Task-#[message.inboundProperties.'http.query.params'.TaskId] - ">

1 个答案:

答案 0 :(得分:0)

好的,所以我没想到 - 这条消息只存在于我的工作流程范围内,这解释了为什么我无法在全球范围内访问它。

所以解决方法是将MEL表达式作为参数传递给我的bean上调用的函数。