アノテーションインターフェース MessagingGateway
Integration Messaging Gateway Proxy をメッセージング API の抽象化として提供するステレオタイプアノテーション。ターゲットアプリケーションのビジネスロジックは Spring Integration API をまったく認識せず、コードはインターフェースを介してのみ対話する場合があります。
重要: 標準の ComponentScan
はインターフェースを無視するため、MessagingGateway
でアノテーションが付けられたインターフェースをスキャンするには、Configuration
とともに IntegrationComponentScan
アノテーションが必要です。
Gateway
アノテーションは、インターフェースごとのメソッド設定に使用できます。
- 導入:
- 4.0
- 作成者:
- Artem Bilan, Gary Russell
- 関連事項:
オプション要素のサマリー
オプション要素修飾子と型オプションの要素説明Future
SE 戻り値の型を持つ任意のインターフェースメソッドに使用するExecutor
SE の実装への参照を提供します。カスタムメッセージヘッダーを提供します。メソッド宣言によって明示的にオーバーライドされない限り、サービスインターフェースのすべてのメソッドのpayload
を生成するために使用される式。ゲートウェイプロキシがサブスクライブするデフォルトチャネルを識別し、応答Message
を受信します。そのペイロードは、メソッドシグネチャーの戻り値の型に変換されます。このゲートウェイが応答Message
を待ってから戻るまでの時間を指定できます。ゲートウェイプロキシのメソッドの呼び出し時にメッセージが送信されるデフォルトのチャネルを識別します。ディスパッチャーがMessage
の送信を待機する時間を提供します。ゲートウェイのプロキシ呼び出しで障害が発生した場合にエラーメッセージが送信されるチャネルを識別します。boolean
errorOnTimeout が true の場合、タイムアウトが発生したときにゲートウェイメソッド呼び出しの結果として null は返されません。メソッド引数をMessage
にマップするためのMethodArgsMessageMapper
。この値は、自動検出されたコンポーネントの場合、Spring Bean に変換される論理コンポーネント名の提案を示している場合があります。boolean
インターフェースのdefault
メソッドもプロキシする必要があるかどうかを示します。この値は、自動検出されたコンポーネントの場合、Spring Bean に変換される論理コンポーネント名の提案を示している場合があります。
要素の詳細
value
この値は、自動検出されたコンポーネントの場合、Spring Bean に変換される論理コンポーネント名の提案を示している場合があります。- 戻り値:
- 推奨されるコンポーネント名(ある場合)
- 導入:
- 6.0
- デフォルト:
- ""
name
この値は、自動検出されたコンポーネントの場合、Spring Bean に変換される論理コンポーネント名の提案を示している場合があります。- 戻り値:
- 推奨されるコンポーネント名(ある場合)
- デフォルト:
- ""
defaultRequestChannel
StringSE defaultRequestChannelゲートウェイプロキシのメソッドの呼び出し時にメッセージが送信されるデフォルトのチャネルを識別します。メソッドごとの構成については、Gateway.requestChannel()
を参照してください。- 戻り値:
- 提案されたチャネル名(ある場合)
- デフォルト:
- ""
defaultReplyChannel
StringSE defaultReplyChannelゲートウェイプロキシが応答Message
を受信するためにサブスクライブするデフォルトチャネルを識別します。そのペイロードはメソッドシグネチャーの戻り値の型に変換されます。メソッドごとの構成については、Gateway.replyChannel()
を参照してください。- 戻り値:
- 提案されたチャネル名(ある場合)
- デフォルト:
- ""
errorChannel
StringSE errorChannelゲートウェイのプロキシ呼び出しで障害が発生した場合にエラーメッセージが送信されるチャネルを識別します。errorChannel
参照が提供されていない場合、ゲートウェイはException
を呼び出し元に伝搬します。Exception
を完全に抑制するには、ここでnullChannel
への参照を提供します。- 戻り値:
- 提案されたチャネル名(ある場合)
- デフォルト:
- ""
defaultRequestTimeout
StringSE defaultRequestTimeoutディスパッチャーがMessage
の送信を待機する時間を提供します。このタイムアウトは、送信呼び出しがブロックされる可能性がある場合にのみ適用されます。たとえば、このゲートウェイがQueueChannel
に接続されている場合です。値はミリ秒単位で指定します。単純な long 値または SpEL 式にすることができます。配列変数 #args が利用可能です。メソッドごとの構成については、Gateway.requestTimeout()
を参照してください。- 戻り値:
- ミリ秒単位の推奨タイムアウト(ある場合)
- デフォルト:
- "30000"
defaultReplyTimeout
StringSE defaultReplyTimeoutこのゲートウェイが応答Message
を返すまで待機する時間を指定できます。ゲートウェイがタイムアウトすると、null
が返されます。値はミリ秒単位で指定します。単純な long 値または SpEL 式にすることができます。配列変数 #args が利用可能です。メソッドごとの構成については、Gateway.replyTimeout()
を参照してください。- 戻り値:
- ミリ秒単位の推奨タイムアウト(ある場合)
- デフォルト:
- "30000"
asyncExecutor
StringSE asyncExecutorFuture
SE 戻り値の型を持つ任意のインターフェースメソッドに使用するExecutor
SE の実装への参照を提供します。このExecutor
は、これらの非同期メソッドにのみ使用されます。同期メソッドは、呼び出し元のスレッドで呼び出されます。AnnotationConstants.NULL
を使用して、非同期エグゼキュータを指定しないでください。たとえば、ダウンストリームフローがFuture
SE を返す場合などです。- 戻り値:
- 推奨されるエグゼキュータ Bean 名(ある場合)
- デフォルト:
- ""
defaultPayloadExpression
StringSE defaultPayloadExpressionメソッド宣言によって明示的にオーバーライドされない限り、サービスインターフェース内のすべてのメソッドのpayload
を生成するために使用される式。変数には#args
、#methodName
、#methodString
、#methodObject
が含まれます。Bean リゾルバーも利用可能で、@someBean(#args)
のような式を有効にします。メソッドごとの構成については、Gateway.payloadExpression()
を参照してください。- 戻り値:
- 提案されたペイロード式(ある場合)
- デフォルト:
- ""
defaultHeaders
GatewayHeader[] defaultHeadersカスタムメッセージヘッダーを提供します。これらのデフォルトヘッダーは、サービスインターフェース上のすべてのメソッドに対して作成されます (特定のメソッドによってオーバーライドされない限り)。メソッドごとの構成については、Gateway.headers()
を参照してください。- 戻り値:
- 提案されたペイロード式(ある場合)
- デフォルト:
- {}
mapper
StringSE mapperメソッド引数をMessage
にマップするためのMethodArgsMessageMapper
。これが提供されている場合、payload-expression
またはheader
は許可されません。カスタムマッパーはメッセージの作成を担当します。- 戻り値:
- 推奨されるマッパー Bean 名(ある場合)
- デフォルト:
- ""
proxyDefaultMethods
boolean proxyDefaultMethodsインターフェースのdefault
メソッドもプロキシする必要があるかどうかを示します。明示的なGateway
アノテーションがメソッドに存在する場合、このオプションとは無関係にプロキシされます。注: JDK クラスのデフォルトメソッド(Function
など)はプロキシできますが、MethodHandle.Lookup
の内部 Java セキュリティ制限によってMethodHandle
を介して呼び出すことはできません。- 戻り値:
- デフォルトのメソッドをプロキシするか、
MethodHandle
を介して呼び出すブールフラグ。 - 導入:
- 5.3
- デフォルト:
- false
errorOnTimeout
boolean errorOnTimeouterrorOnTimeout が true の場合、タイムアウトが発生したときにゲートウェイメソッド呼び出しの結果として null は返されません。代わりに、MessageTimeoutException
がスローされるか、エラーメッセージがエラーチャネルにパブリッシュされます。- デフォルト:
- false