クラス IdempotentReceiverInterceptor

実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptorAwareBeanFactoryAwareBeanNameAwareInitializingBeanApplicationContextAwareExpressionCapableHandleMessageAdviceNamedComponent

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

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

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

このクラスは、MessageHandler.handleMessage(org.springframework.messaging.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()
      クラスからコピーされた説明: IntegrationObjectSupport
      サブクラスはこのメソッドを実装して、コンポーネント型情報を提供できます。
      次で指定:
      インターフェース NamedComponentgetComponentType 
      オーバーライド:
      クラス IntegrationObjectSupportgetComponentType 
    • doInvoke

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