对不起,我是Camel的新手。查看这两个方法的文档,没有任何有意义的指示说明何时需要使用这两个方法。
例如,setProperty()请参阅https://camel.apache.org/components/3.4.x/eips/setProperty-eip.html
我没有看到任何属性方法,除了设置和删除它们。这有什么意义?同样的头,你可以设置它们,但不知道如何获得它们。
对不起,我是Camel的新手。查看这两个方法的文档,没有任何有意义的指示说明何时需要使用这两个方法。
例如,setProperty()请参阅https://camel.apache.org/components/3.4.x/eips/setProperty-eip.html
我没有看到任何属性方法,除了设置和删除它们。这有什么意义?同样的头,你可以设置它们,但不知道如何获得它们。
2条答案
按热度按时间41ik7eoe1#
对不起,我是Camel的新手。查看这两个方法的文档,没有任何有意义的指示说明何时需要使用这两个方法。
若要了解何时要使用这些方法,您需要了解 Headers 和 Properties 之间的区别。
org.apache.camel.Message
-基本实体,包含Camel中传送和路由的数据。消息是系统在使用消息传送通道时用来相互通信的实体。消息是单向流动的,即从发送方流向接收方。
Messages具有主体(有效负载)、***报头***和可选附件。
消息还可以包含可选附件,这些附件通常用于Web服务和电子邮件组件。
org.apache.camel.Exchange
-Camel中的交换是消息在路由过程中的容器。交换还为系统之间的各种类型的交互提供支持,也称为消息交换模式(MEP)。请在此处阅读更多有关MEP的信息。Camel exchange具有ID、MEP、异常和***属性***。它还具有用于存储传入消息的in消息和用于存储回复的out消息。
因此,有了这种理解-现在根据您的用例,您需要决定是否将“类型”(即,您要保存的值)保存在Headers或Properties中。
我没有看到任何属性方法,除了设置和删除它们。这有什么意义?同样的头,你可以设置它们,但不知道如何获得它们。
若要检索头或属性,请使用以下方法之一
也许有更多的方法,但这些相当多和广泛使用(至少由我!)。
更新:您可以从Simple中使用exchangeProperties访问已设置的exchange属性,下面是一些示例,
来源:https://livebook.manning.com/book/camel-in-action-second-edition/chapter-1/
vu8f3i0k2#
头(
.setHeader
)通常在发送消息到其他需要它们的组件/系统时设置,如Message Broker、JMS、Web服务、HTTP、FTP服务器等。大多数Camel组件默认转发所有的交换头。假设你在头中有敏感数据,它会被传播!Exchange Properties(
.setProperty
)可用于保存您在Exchange生命周期中可能需要的数据,而不必担心将它们的值传播到其他系统。例如,在HTTP请求中,您必须定义一个方法(GET、POST等),很可能是一个头。因此,将其设置为头是有意义的!另一方面,从该调用中检索到的数据可能会“保存”在一个属性中,以便在路由步骤中轻松重用。