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