アノテーションインターフェース Router
@TargetSE({METHODSE,ANNOTATION_TYPESE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@RepeatableSE(Routers.class)
public @interface Router
メッセージ、メッセージヘッダー、その両方に基づいて、メソッドがチャネルまたはチャネル名に解決できることを示します。
@Router アノテーションが付けられたメソッドは、型 Message または予期されるメッセージペイロードの型のパラメーターを受け入れる場合があります。SimpleTypeConverter でサポートされている型変換は、必要に応じてメッセージペイロードに適用されます。ヘッダー値は、@Header パラメーターアノテーションを使用してメッセージパラメーターとして渡すこともできます。
アノテーション付きメソッドからの戻り値は、要素が channels または文字列のいずれかであるコレクションまたは配列のいずれかです。後者の場合、このルーターをホストしているエンドポイントは、チャネルレジストリまたは channelMappings()(提供されている場合)を使用して各チャネル名を解決しようとします。
- 作成者:
- Mark Fisher, Artem Bilan, Chris Bono
オプション要素の概要
オプション要素修飾子と型オプションの要素説明シーケンス番号とサイズのヘッダーを各メッセージに追加するかどうかを指定します。SmartLifecycleautoStartupオプション。StringSE[]channelMapping エントリを表す「キー = 値」のペア。宛先チャネルが解決されず、resolutionRequired()が false であるメッセージをこのルーターが送信するチャネルを指定します。trueに設定すると、メッセージチャネルへの送信の失敗は無視されます。このルーターがメッセージを消費するチャネルを指定します。SmartLifecyclephaseオプションを指定します。解決前に各チャネル名に追加するプレフィックスを指定します。チャネル名を常に既存のチャネルインスタンスに正常に解決する必要があるかどうかを指定します。応答MessageをoutputChannelに送信するときに待機する最大時間をミリ秒単位で指定します。解決前に各チャネル名に追加するサフィックスを指定します。
要素の詳細
inputChannel
StringSE inputChannelこのルーターがメッセージを消費するチャネルを指定します。チャネルが存在しない場合、この名前のDirectChannelがアプリケーションコンテキストに登録されます。- 戻り値:
- チャンネル名。
- デフォルト:
""
defaultOutputChannel
StringSE defaultOutputChannel宛先チャネルが解決されず、resolutionRequired()が false であるメッセージをこのルーターが送信するチャネルを指定します。- 戻り値:
- チャンネル名。
- デフォルト:
""
channelMappings
prefix
suffix
resolutionRequired
StringSE resolutionRequiredチャネル名を常に既存のチャネルインスタンスに正常に解決する必要があるかどうかを指定します。true(デフォルト)に設定すると、チャネルを解決できない場合にMessagingExceptionが発生します。この属性をfalseに設定すると、解決できないチャネルはすべて無視されます。「プロパティプレースホルダー」として指定できます。例:${spring.integration.resolutionRequired}。- 戻り値:
- 解決が必要なフラグ。
- デフォルト:
""
applySequence
StringSE applySequenceシーケンス番号とサイズのヘッダーを各メッセージに追加するかどうかを指定します。デフォルトはfalseです。「プロパティプレースホルダー」として指定できます。例:${spring.integration.applySequence}。- 戻り値:
- シーケンスフラグを適用します。
- デフォルト:
""
ignoreSendFailures
StringSE ignoreSendFailurestrueに設定すると、メッセージチャネルへの送信の失敗は無視されます。false(デフォルト)に設定されている場合、代わりにMessageDeliveryExceptionがスローされ、ルーターが複数のチャネルを解決する場合、後続のチャネルはメッセージを受信しません。ダイレクトチャネル(シングルスレッド)を使用する場合、送信の失敗は、はるか下流のコンポーネントによってスローされる例外によって引き起こされる可能性があることに注意してください。「プロパティプレースホルダー」として指定できます。例:${spring.integration.ignoreSendFailures}。- 戻り値:
- 送信失敗フラグを無視します。
- デフォルト:
""
sendTimeout
StringSE sendTimeout応答MessageをoutputChannelに送信するときに待機する最大時間をミリ秒単位で指定します。デフォルトは30秒です。出力チャネルに何らかの「送信」制限がある場合にのみ適用されます (例: 固定の「容量」を持つQueueChannel)。この場合、MessageDeliveryExceptionがスローされます。AbstractSubscribableChannel実装の場合、"sendTimeout" は無視されます。「プロパティプレースホルダー」として指定できます (例:${spring.integration.sendTimeout})。- 戻り値:
- 結果を応答ターゲットに送信するためのタイムアウト (ミリ秒単位)
- デフォルト:
""
autoStartup
phase
StringSE phaseSmartLifecyclephaseオプションを指定します。デフォルトは、PollingConsumerの場合はInteger.MAX_VALUE / 2、EventDrivenConsumerの場合はInteger.MIN_VALUEです。「プロパティプレースホルダー」として指定できます。例:${foo.phase}。- 戻り値:
SmartLifecycleフェーズ。
- デフォルト:
""
poller
Poller poller- 戻り値:
- ポーリングされたエンドポイント (
PollerMetadata) のPollerオプション。reactive()とは相互に排他的です。
- デフォルト:
@org.springframework.integration.annotation.Poller("\n\t\t\n\t\t\n\ue000\ue001\ue002\n\t\t\t\t\n")
reactive