MuleEvent event
传递给MessageProcessor
:event.getFlowVariable
与event.getMessage().getInvocationProperty
的{{1}}之间有什么区别?我测试了它们甚至为异步提供相同的结果(我通过在具有不同变量值的分散 - 聚集中调用它来测试)
答案 0 :(得分:0)
基本上有任何区别。实际上,当设置消息时,在消息级别命名为invocationProperty的flowVariables将被复制到mule事件中,以便您也可以通过getFlowVariable方法从那里访问它。 这是MuleDefaultEvent.class setMessage方法的摘录,它向您显示值是相同的。
@Override
public void setMessage(MuleMessage message)
{
this.message = message;
if (message instanceof DefaultMuleMessage)
{
// Don't copy properties from message to event every time we copy event as we did before. Rather
// only copy invocation properties over if MuleMessage had invocation properties set on it before
// MuleEvent was created.
flowVariables.putAll(((DefaultMuleMessage) message).getOrphanFlowVariables());
((DefaultMuleMessage) message).setInvocationProperties(flowVariables);
if (session instanceof DefaultMuleSession)
{
((DefaultMuleMessage) message).setSessionProperties(((DefaultMuleSession) session).getProperties());
}
}
}
希望这会有所帮助。 此致