使用set payload vs expression组件的Mule变量声明
通过这个问题,我了解到:使用set payload vs expression组件的Mule变量声明,mule,Mule,通过这个问题,我了解到: 使用集合有效负载声明的变量类似于实例变量 表达式组件中定义的变量类似于方法局部变量 我的理解正确吗?如何访问表达式组件中的变量?您的问题中有错误。。 无法使用set payload声明变量。。。设置有效负载用于覆盖现有的消息有效负载。。 您可以使用 现在回到你的问题。。 是,Mule中有两种类型的变量:- 流量变量 会话变量 如果使用流变量,则它是一个实例变量。。变量的作用域是调用。。仅限于特定流(和子流)的 其中,就好像您使用了会话变量一样。。它的作用域是全局
- 使用集合有效负载声明的变量类似于实例变量
- 表达式组件中定义的变量类似于方法局部变量
我的理解正确吗?如何访问表达式组件中的变量?您的问题中有错误。。 无法使用set payload声明变量。。。设置有效负载用于覆盖现有的消息有效负载。。 您可以使用
现在回到你的问题。。
是,Mule中有两种类型的变量:-
- 流量变量
- 会话变量
声明变量。。在这里声明变量时,您需要声明它的范围。。。这是调用或会话
类似地,如果使用表达式组件声明变量,则需要将变量声明为调用或会话
例如。。见下文:-
<set-session-variable variableName="sessionId" value="#[message.id+’@’+mule.nodeId]" />
<expression-component>sessionVars.sessionId = message.id+'@'+mule.nodeId;</expression-component>
sessionVars.sessionId=message.id+'@'+mule.nodeId;
在这里,您可以使用
和表达式组件设置变量
您在这里设置为一个全局,或者您可以说是一个会话变量
请查找以下内容以供参考:-
更新答案:-
是的。您可以在set variable或expression中设置变量,并且可以在任何位置访问变量,无论您在何处声明
例如,如果要访问表达式组件中的会话变量,您已使用以下命令在set session variable中声明:-
您可以执行以下操作:-
将会话变量设置为payloadpayload=sessionVars.sessionId代码>
然后,您可以使用记录器打印有效负载:-
要检查值问题中的错误是输入错误。我的意图是询问,设置变量vs表达式组件
。你消除了我的疑虑。我们可以在表达式组件中访问使用set variable声明的变量吗?谢谢。我不能在表达式组件中声明/设置一个变量,并在流中的某些地方使用它吗?是的,我是这么说的。。您可以将其设置在任何位置,也可以从其范围内的任何位置访问它。。如果使用会话变量,它的作用域将贯穿所有流。。如果使用流变量,则可以在流中的任何位置访问它。。因此,根据您的问题,如果您在expression组件中设置会话变量,您可以使用Mule expression语言在Mule流中访问它。。例如在记录器中:-