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