アノテーションインターフェース Router


メッセージ、メッセージヘッダー、その両方に基づいて、メソッドがチャネルまたはチャネル名に解決できることを示します。

@Router アノテーションが付けられたメソッドは、型 Message または予期されるメッセージペイロードの型のパラメーターを受け入れる場合があります。SimpleTypeConverter でサポートされている型変換は、必要に応じてメッセージペイロードに適用されます。ヘッダー値は、@Header パラメーターアノテーションを使用してメッセージパラメーターとして渡すこともできます。

アノテーション付きメソッドからの戻り値は、要素が channels または文字列のいずれかであるコレクションまたは配列のいずれかです。後者の場合、このルーターをホストしているエンドポイントは、チャネルレジストリまたは channelMappings()(提供されている場合)を使用して各チャネル名を解決しようとします。

作成者:
Mark Fisher, Artem Bilan, Chris Bono
  • 要素の詳細

    • inputChannel

      StringSE inputChannel
      このルーターがメッセージを消費するチャネルを指定します。チャネルが存在しない場合、この名前の DirectChannel がアプリケーションコンテキストに登録されます。
      戻り値:
      チャンネル名。
      デフォルト:
      ""
    • defaultOutputChannel

      StringSE defaultOutputChannel
      宛先チャネルが解決されず、resolutionRequired() が false であるメッセージをこのルーターが送信するチャネルを指定します。
      戻り値:
      チャンネル名。
      デフォルト:
      ""
    • channelMappings

      StringSE[] channelMappings
      'key = value' ペアは、channelMapping エントリを表します。
      戻り値:
      channelMappings。
      関連事項:
      デフォルト:
      {}
    • prefix

      StringSE prefix
      解決前に各チャネル名に追加するプレフィックスを指定します。
      戻り値:
      プレフィックス。
      デフォルト:
      ""
    • suffix

      StringSE suffix
      解決前に各チャネル名に追加するサフィックスを指定します。
      戻り値:
      接尾辞。
      デフォルト:
      ""
    • resolutionRequired

      StringSE resolutionRequired
      チャネル名を常に既存のチャネルインスタンスに正常に解決する必要があるかどうかを指定します。

      true (デフォルト)に設定すると、チャネルを解決できない場合に MessagingException が発生します。この属性を false に設定すると、解決できないチャネルはすべて無視されます。「プロパティプレースホルダー」として指定できます。例: ${spring.integration.resolutionRequired}

      戻り値:
      解決が必要なフラグ。
      デフォルト:
      ""
    • applySequence

      StringSE applySequence
      シーケンス番号とサイズのヘッダーを各メッセージに追加するかどうかを指定します。デフォルトは false です。「プロパティプレースホルダー」として指定できます。例: ${spring.integration.applySequence}
      戻り値:
      シーケンスフラグを適用します。
      デフォルト:
      ""
    • ignoreSendFailures

      StringSE ignoreSendFailures
      true に設定すると、メッセージチャネルへの送信の失敗は無視されます。false (デフォルト)に設定されている場合、代わりに MessageDeliveryException がスローされ、ルーターが複数のチャネルを解決する場合、後続のチャネルはメッセージを受信しません。ダイレクトチャネル(シングルスレッド)を使用する場合、送信の失敗は、はるか下流のコンポーネントによってスローされる例外によって引き起こされる可能性があることに注意してください。「プロパティプレースホルダー」として指定できます。例: ${spring.integration.ignoreSendFailures}
      戻り値:
      送信失敗フラグを無視します。
      デフォルト:
      ""
    • sendTimeout

      StringSE sendTimeout
      応答 Message を outputChannel に送信するときに待機する最大時間をミリ秒単位で指定します。デフォルトは 30 秒です。これは、出力チャンネルに何らかの「送信」制限がある場合にのみ適用されます。「容量」が固定された QueueChannel。この場合、MessageDeliveryException がスローされます。AbstractSubscribableChannel 実装の場合、"sendTimeout" は無視されます。「プロパティプレースホルダ」として指定できます。${spring.integration.sendTimeout}
      戻り値:
      結果を応答ターゲットに送信するためのタイムアウト (ミリ秒単位)
      デフォルト:
      ""
    • autoStartup

      StringSE autoStartup
      SmartLifecycle autoStartup オプション。「プロパティプレースホルダー」として指定できます。例: ${foo.autoStartup}。デフォルトは true です。
      戻り値:
      自動起動 boolean フラグ。
      デフォルト:
      ""
    • phase

      StringSE phase
      SmartLifecycle phase オプションを指定します。デフォルトは、PollingConsumer の場合は Integer.MAX_VALUE / 2EventDrivenConsumer の場合は 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

      Reactive reactive
      戻り値:
      コンシューマーエンドポイントの Reactive マーカー。poller() と相互に排他的です。
      導入:
      5.5
      デフォルト:
      @org.springframework.integration.annotation.Reactive("\n \ t \ t \n \ t \ t \n \ ue000 \ ue001 \ ue002 \n \ t \ t \ t \ t \n")