如需使用最新稳定版本,请使用 Spring Integration 7.0.4spring-doc.cadn.net.cn

MessagingTemplate

当介绍了端点及其各种配置选项后,Spring Integration 为消息组件提供了一个基础,使您的应用代码能够非侵入式地从消息系统中被调用。 然而,在某些情况下也需要从您的应用代码中调用消息系统。 为了在实现此类用例时提供便利,Spring Integration 提供了一个MessagingTemplate,它支持各种跨消息通道的操作,包括请求和回复场景等。 例如,您可以发送一个请求并等待回复,如下所示:spring-doc.cadn.net.cn

MessagingTemplate template = new MessagingTemplate();

Message reply = template.sendAndReceive(someChannel, new GenericMessage("test"));

在前面的示例中,模板内部会创建一个临时匿名通道。 '发送超时'和'接收超时'属性也可以设置在模板上,并且还支持其他交换类型。 以下列表展示了此类方法的签名:spring-doc.cadn.net.cn

public boolean send(final MessageChannel channel, final Message<?> message) { ...
}

public Message<?> sendAndReceive(final MessageChannel channel, final Message<?> request) { ...
}

public Message<?> receive(final PollableChannel<?> channel) { ...
}
一种侵入性更小的方法允许您使用有效负载或标头值调用简单接口,而不是Message实例,详见进入GatewayProxyFactoryBean