我有一个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] - ">
答案 0 :(得分:0)
好的,所以我没想到 - 这条消息只存在于我的工作流程范围内,这解释了为什么我无法在全球范围内访问它。
所以解决方法是将MEL表达式作为参数传递给我的bean上调用的函数。