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 を入力してくださいで説明しています。