Is there any difference between setting a variable within Mule flow using <set-variable>
versus setting a variable using enricher like <enricher target="#[variable:xyz]"\>
3 回答
旨在执行交互,enricher
例如调用出站端点并将结果带回主流。
使用它作为替代set-variable
在语义上是错误的,即使它有效。
message en-richer 和 set 属性之间存在显着差异。
消息丰富器:它将通过调用外部系统或对现有有效负载进行一些转换来丰富 mule 消息,并将其保存到某个变量范围内,如会话或出站或调用。即使转换发生在消息丰富器范围内,它不会影响流中下一个组件的实际有效负载。
设置属性:
set 属性将从有效负载或原始有效负载中提取的一些信息保存到某个调用或流范围变量。
David Dossot 所描述的完全正确。进一步补充他的描述:
The Message Enricher allows the current message to be augmented using data from a seperate resource. The Mule implementation of the Enrichment Resource (a source of data to augment the current message) can be any Message Processor
.
您可以在MessageEnricher找到这方面的 Java API 文档。
当然,阅读 Java 文档确实对我们有很大帮助。