MessagingTemplate
当引入端点及其各种配置选项时,Spring Integration 为消息组件提供了一个基础,该基础允许从消息系统非侵入性地调用您的应用程序代码。
然而,有时需要从您的应用程序代码中调用消息系统。
为了方便实现此类用例,Spring Integration 提供了一个 MessagingTemplate
,它支持跨消息通道的各种操作,包括请求和回复场景。
例如,可以发送请求并等待回复,如下所示:
MessagingTemplate template = new MessagingTemplate();
Message reply = template.sendAndReceive(someChannel, new GenericMessage("test"));
在前面的示例中,模板将在内部创建一个临时的匿名通道。 'sendTimeout' 和 'receiveTimeout' 属性也可以在模板上设置,并且还支持其他交换类型。 以下列表显示了这些方法的签名:
public boolean send(final MessageChannel channel, final Message<?> message) { ...
}
public Message<?> sendAndReceive(final MessageChannel channel, final Message<?> request) { ...
}
public Message<?> receive(final PollableChannel<?> channel) { ...
}
一种侵入性较小的方法,允许您使用有效负载或头部值而不是 |