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) { ...
}
一种侵入性较低的方法允许您使用有效负载或报头值(而不是Message实例)调用简单的接口,这在进入GatewayProxyFactoryBean中进行了描述。