在apache camel中,哪些是将值从交换处理器传递到另一个处理器的最佳方式(以及为什么):
setProperty在构建路线时使用该方法.Cla*_*sen 52
Ben和Petter未提及的一个区别是,在Camel中处理消息的整个过程中,属性被安全地存储.相反,标头是消息协议的一部分,并且在路由期间可能不会传播.例如,JMS具有您可以存储为标题等的限制.
您可能需要阅读Camel in Action一书中的免费第1章,因为它涵盖了使用Exchange,Message等的Camel概念.
Ben*_*Day 21
该交易所在处理器之间传递.它包含属性,IN消息和可选的OUT消息.其中每个都能够存储对象数据,但一般情况下:
也就是说,它实际上取决于跟随处理器的组件.大多数都有一些使用端点所需的标题和/或正文值等.有关这些详细信息,请参阅特定的组件页面.
此外,在这些页面上更详细地解释了Exchange/Message:
http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html
http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html
答案在这里:
属性:属性是一个 Map,可能看起来像消息头。主要区别在于它们的生命周期:属性存在于整个交换执行期间,而标头仅限于消息持续时间(并且消息在路由期间可能会发生很大变化,因此在交换执行期间)。Camel 本身可能会为某些用例添加一些属性。