クラス IdempotentReceiverInterceptor

実装済みのインターフェース一覧:
Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ComponentSourceAware, ExpressionCapable, HandleMessageAdvice, NamedComponent

public class IdempotentReceiverInterceptor extends AbstractHandleMessageAdvice
べき等レシーバー E.I。の MethodInterceptor 実装パターン。

この MethodInterceptor は、discardChannel が指定されているか、throwExceptionOnRejection が true に設定されている場合、MessageFilter のように動作します。ただし、これらのプロパティが指定されていない場合、このインターセプターは requestMessage が MessageSelector によって受け入れられない場合、IntegrationMessageHeaderAccessor.DUPLICATE_MESSAGE ヘッダーを持つ新しい Message を作成します。

idempotent filtering ロジックは、提供されている MessageSelector に依存します。

このクラスは、MessageHandler.handleMessage(Message) メソッド専用に設計されています。

導入:
4.1
作成者:
Artem Bilan, Gary Russell
関連事項:
  • コンストラクターの詳細

    • IdempotentReceiverInterceptor

      public IdempotentReceiverInterceptor(MessageSelector messageSelector)
  • 方法の詳細

    • setTimeout

      public void setTimeout(long timeout)
      廃棄チャネルに送信するためのタイムアウト値を指定します。
      パラメーター:
      timeout - ミリ秒単位のタイムアウト
    • setThrowExceptionOnRejection

      public void setThrowExceptionOnRejection(boolean throwExceptionOnRejection)
      このインターセプターがセレクターがメッセージを受け入れない場合に、MessageRejectedException をスローするかどうかを指定します。デフォルト値は false です。これは、拒否されたメッセージは破棄されるか、IntegrationMessageHeaderAccessor.DUPLICATE_MESSAGE ヘッダーが追加され、通常通り invocation.proceed() に返されることを意味します。通常、破棄チャネルが提供されている場合、この値は true にはなりませんが、提供されている場合は、メッセージが破棄チャネルに送信された後に例外がスローされます。
      パラメーター:
      throwExceptionOnRejection - 例外をスローする必要がある場合は true。
      関連事項:
    • setDiscardChannel

      public void setDiscardChannel(MessageChannel discardChannel)
      拒否されたメッセージを送信するチャネルを指定します。破棄チャネルが null(デフォルト)の場合、重複するメッセージは IntegrationMessageHeaderAccessor.DUPLICATE_MESSAGE ヘッダーで強化され、通常どおり invocation.proceed() に返されます。ただし、"throwExceptionOnRejection" フラグは、拒否されたメッセージが例外をトリガーするかどうかを決定します。その値は、廃棄チャネルの存在に関係なく評価されます。

      拒否されたメッセージを確認なしで「ドロップ」する必要がある場合は、discardChannel を nullChannel に構成します。

      パラメーター:
      discardChannel - 廃棄チャネル。
      関連事項:
    • setDiscardChannelName

      public void setDiscardChannelName(StringSE discardChannelName)
      拒否されたメッセージを送信するチャネル名を指定します。破棄チャネルが null(デフォルト)の場合、重複するメッセージは IntegrationMessageHeaderAccessor.DUPLICATE_MESSAGE ヘッダーで強化され、通常どおり invocation.proceed() に返されます。ただし、"throwExceptionOnRejection" フラグは、拒否されたメッセージが例外をトリガーするかどうかを決定します。その値は、廃棄チャネルの存在に関係なく評価されます。

      拒否されたメッセージを確認なしで「ドロップ」する必要がある場合は、discardChannel を nullChannel に構成します。

      discardChannel が提供されていない場合にのみ適用されます。

      パラメーター:
      discardChannelName - 廃棄チャネル名。
      導入:
      5.0.1
      関連事項:
    • getComponentType

      public StringSE getComponentType()
    • doInvoke

      protected @Nullable ObjectSE doInvoke(MethodInvocation invocation, Message<?> message) throws ThrowableSE
      次で指定:
      クラス AbstractHandleMessageAdvice の doInvoke 
      例外:
      ThrowableSE