使用REPLY_CHANNEL标头时

时间:2013-11-20 20:34:39

标签: spring-integration

MessageHeaders可以包含replyChannel类型值Object的密钥。我知道在我的自定义端点中,我可以使用此标头,但我认为replyChannel标头有一些默认含义。请在使用replyChannel标题时向我解释。

1 个答案:

答案 0 :(得分:0)

对于大多数应用程序,通常不需要操纵replyChannel标头。框架需要将回复路由到以各种类型的入站网关开始的基于请求 - 回复的流。高级流可能会将回复通道设置为通道或通道名称,但如果它们是来自网关(或MessagingTemplate)的请求/回复,则最终必须恢复原始标头。

只要以编程方式或在网关内使用MessagingTemplate消息,就会由*sendAndReceive()设置。

目前,它不可序列化(您无法在流中保留消息),因为它是发送线程期望找到回复的“实时”Java对象实例。即使您通过将回复发送到网关上的reply-channel来回复网关,情况仍然如此;网关上的回复通道桥接到标题通道。

即将发布的3.0版本有一个new feature,允许注册标题通道并用字符串替换它们以便序列化,框架将根据需要从注册表中恢复它们。