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) { ...
}
一種侵入性較小的方法,允許您使用 payload 或 header 值而不是 Message 例項呼叫簡單介面,這在 進入 GatewayProxyFactoryBean 中有所描述。 |