アノテーションインターフェース Gateway
@TargetSE({METHODSE,ANNOTATION_TYPESE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
public @interface Gateway
インターフェースメソッドがそのパラメーターをメッセージまたはメッセージペイロードにマッピングできることを示します。これらのメソッドレベルのアノテーションは
GatewayProxyFactoryBean
によって検出され、アノテーション属性はデフォルトのチャネル設定をオーバーライドできます。@Gateway でアノテーションが付けられたメソッドは、型 Message
または目的のメッセージペイロード型の単一のアノテーションなしパラメーターを受け入れる場合があります。メソッドパラメーターは、@Header
パラメーターアノテーションを使用して個々のメッセージヘッダー値にマップできます。または、メッセージヘッダーマップ全体を渡すために、マップ型のパラメーターに Headers
アノテーションを付けることもできます。
アノテーション付きメソッドからの戻り値は、どの型でもかまいません。宣言された戻り値がメッセージでない場合、応答メッセージのペイロードが返され、必要に応じて、Spring の SimpleTypeConverter
でサポートされている型変換が戻り値に適用されます。
メモ: @Publisher とは異なり、このアノテーションは、マークされたインターフェースメソッドのプロキシに基づいてメッセージングエンドポイントを公開するためのものです。メソッドの呼び出しにより、AOP アドバイスを使用してメッセージングの相互作用が発生します。メソッドパラメーターは、送信されたメッセージ(ペイロード、ヘッダー)の一部になります。メソッドの戻り値は、プロキシによって呼び出されたメッセージングフローの結果(ペイロード)です。
- 作成者:
- Mark Fisher, Gary Russell, Artem Bilan
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明リクエストメッセージに追加される追加のヘッダーを指定します。SpEL 式を指定して、リクエストメッセージのペイロードを判別します。応答メッセージの受信元のチャネルを指定します。包含ゲートウェイのデフォルトの応答チャネルをオーバーライドします。long
リクエストを送信するスレッドが応答を待機する時間(ミリ秒)を指定します。SpEL 式を指定して、リクエストを送信したスレッドが応答を待つ時間 (ミリ秒) を決定します。メッセージの送信先のチャネルを指定します。包含ゲートウェイのデフォルトのリクエストチャネルをオーバーライドします。long
リクエストチャネルに送信するときのタイムアウト(ms)を指定します。送信がブロックする可能性がある場合にのみ適用されます(現在いっぱいになっている制限付きQueueChannel
など)。SpEL 式を指定して、リクエストチャネルに送信するときのタイムアウト(ms)を決定します。送信がブロックされる可能性がある場合にのみ適用されます(現在いっぱいになっている制限付きQueueChannel
など)。
要素の詳細
requestChannel
StringSE requestChannelメッセージの送信先のチャネルを指定します。包含ゲートウェイのデフォルトのリクエストチャネルをオーバーライドします。- 戻り値:
- チャンネル名。
- デフォルト:
- ""
replyChannel
StringSE replyChannel応答メッセージの受信元のチャネルを指定します。包含ゲートウェイのデフォルトの応答チャネルをオーバーライドします。- 戻り値:
- チャンネル名。
- デフォルト:
- ""
requestTimeout
long requestTimeoutリクエストチャネルに送信するときのタイムアウト(ms)を指定します。送信がブロックされる可能性がある場合にのみ適用されます(現在いっぱいになっている制限付きQueueChannel
など。包含ゲートウェイのデフォルトのリクエストタイムアウトをオーバーライドします。- 戻り値:
- タイムアウト。
- 関連事項:
- デフォルト:
- 30000L
requestTimeoutExpression
StringSE requestTimeoutExpressionSpEL 式を指定して、リクエストチャネルに送信するときのタイムアウト(ms)を決定します。送信がブロックされる可能性がある場合にのみ適用されます(現在いっぱいになっている制限付きQueueChannel
など。包含ゲートウェイのデフォルトのリクエストタイムアウトをオーバーライドします。requestTimeout()
をオーバーライドします。- 戻り値:
- タイムアウト。
- 導入:
- 5.0
- デフォルト:
- ""
replyTimeout
long replyTimeoutリクエストを送信するスレッドが応答を待機する時間(ミリ秒)を指定します。タイマーは、リクエストメッセージが送信されたときではなく、スレッドがゲートウェイに戻ったときに開始します。包含ゲートウェイのデフォルトの応答タイムアウトをオーバーライドします。- 戻り値:
- タイムアウト。
- 関連事項:
- デフォルト:
- 30000L
replyTimeoutExpression
StringSE replyTimeoutExpressionSpEL 式を指定して、リクエストを送信したスレッドが応答を待つ時間 (ミリ秒) を決定します。タイマーは、リクエストメッセージの送信時ではなく、スレッドがゲートウェイに戻ったときに開始します。包含するゲートウェイのデフォルトの応答タイムアウトをオーバーライドします。replyTimeout()
をオーバーライドします。- 戻り値:
- タイムアウト。
- 導入:
- 5.0
- デフォルト:
- ""
payloadExpression
StringSE payloadExpressionSpEL 式を指定して、リクエストメッセージのペイロードを判別します。- 戻り値:
- 表現。
- デフォルト:
- ""
headers
GatewayHeader[] headersリクエストメッセージに追加される追加のヘッダーを指定します。- 戻り値:
- ヘッダー。
- デフォルト:
- {}