クラス AbstractAdaptableMessageListener

java.lang.ObjectSE
org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener
実装されたすべてのインターフェース:
MessageListenerChannelAwareMessageListener
既知の直属サブクラス
MessageListenerAdapterMessagingMessageListenerAdapter

public abstract class AbstractAdaptableMessageListener extends ObjectSE implements ChannelAwareMessageListener
Message のペイロードを抽出するために必要なインフラストラクチャを提供する抽象 MessageListener アダプター。
導入:
1.4
作成者:
Stephane Nicoll, Gary Russell, Artem Bilan, Johan Haleby
関連事項:
  • フィールドの詳細

    • logger

      protected final Log logger
      サブクラスで利用可能なロガー。
  • コンストラクターの詳細

    • AbstractAdaptableMessageListener

      public AbstractAdaptableMessageListener()
  • メソッドの詳細

    • setResponseRoutingKey

      public void setResponseRoutingKey(StringSE responseRoutingKey)
      レスポンスメッセージを送信するときに使用するルーティングキーを設定します。これは、"ReplyTo" プロパティを持たないリクエストメッセージの場合に適用されます。

      レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。

      パラメーター:
      responseRoutingKey - ルーティングキー。
    • setEncoding

      public void setEncoding(StringSE encoding)
      メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。
      パラメーター:
      encoding - 設定するエンコーディング。
    • getEncoding

      public StringSE getEncoding()
      メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。
      戻り値:
      エンコーディングのエンコーディング。
    • setResponseExchange

      public void setResponseExchange(StringSE responseExchange)
      レスポンスメッセージを送信するときに使用する交換を設定します。これは、受信したメッセージからの交換が null の場合にのみ使用されます。

      レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。

      パラメーター:
      responseExchange - 交換。
    • setResponseAddress

      public void setResponseAddress(StringSE defaultReplyTo)
      レスポンスメッセージを送信するときに使用するデフォルトの replyTo アドレスを設定します。これは、受信したメッセージの replyTo が null の場合にのみ使用されます。

      レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。

      これは Address で解析されるため、exchange/rk の形式である必要があります。

      "!{...}" で囲まれた文字列にすることができます。この場合、式は実行時に評価されます。詳細については、リファレンスマニュアルを参照してください。

      パラメーター:
      defaultReplyTo - 返信先アドレス。
      導入:
      1.6
    • setMandatoryPublish

      public void setMandatoryPublish(boolean mandatoryPublish)
    • setMessageConverter

      public void setMessageConverter(MessageConverter messageConverter)
      受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを設定します。

      デフォルトのコンバーターは、「テキスト」コンテンツ型を処理できる SimpleMessageConverter です。

      パラメーター:
      messageConverter - メッセージコンバーター。
    • setBeforeSendReplyPostProcessors

      public void setBeforeSendReplyPostProcessors(MessagePostProcessor... beforeSendReplyPostProcessors)
      返信を送信する前に適用されるポストプロセッサーを設定します。
      パラメーター:
      beforeSendReplyPostProcessors - ポストプロセッサー。
      導入:
      2.0.3
    • setRetryTemplate

      public void setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate)
      応答を送信するときに使用する RetryTemplate を設定します。
      パラメーター:
      retryTemplate - テンプレート。
      導入:
      2.0.6
      関連事項:
    • setRecoveryCallback

      public void setRecoveryCallback(org.springframework.retry.RecoveryCallback<?> recoveryCallback)
      再試行が使い果たされたときに呼び出す RecoveryCallback を設定します。
      パラメーター:
      recoveryCallback - リカバリコールバック。
      導入:
      2.0.6
      関連事項:
    • setBeanResolver

      public void setBeanResolver(BeanResolver beanResolver)
      ランタイム SpEL 式の Bean リゾルバーを設定します。また、標準型のコンバーターとマップアクセサーを使用して評価コンテキストを構成します。
      パラメーター:
      beanResolver - リゾルバー。
      導入:
      1.6
    • setReplyPostProcessor

      public void setReplyPostProcessor(ReplyPostProcessor replyPostProcessor)
      ReplyPostProcessor を設定して、レスポンスメッセージを送信する前に後処理します。これは、correlationId ヘッダーを設定する postProcessResponse(Message, Message) の後に呼び出されます。
      パラメーター:
      replyPostProcessor - ポストプロセッサー。
      導入:
      2.2.5
    • getReplyContentType

      protected StringSE getReplyContentType()
      返信コンテンツ型を取得します。
      戻り値:
      コンテンツ型。
      導入:
      2.3
    • setReplyContentType

      public void setReplyContentType(StringSE replyContentType)
      返信内容の種類を設定します。
      パラメーター:
      replyContentType - コンテンツ型。
      導入:
      2.3
    • isConverterWinsContentType

      protected boolean isConverterWinsContentType()
      コンバーターによって設定されたコンテンツ型が優先されるかどうかを返します。
      戻り値:
      返信コンテンツ型を常に適用する場合は false。
      導入:
      2.3
    • setConverterWinsContentType

      public void setConverterWinsContentType(boolean converterWinsContentType)
      コンバーターで設定したコンテンツ型を優先するかどうかを設定します。
      パラメーター:
      converterWinsContentType - 返信コンテンツ型を常に適用する場合は false。
      導入:
      2.3
    • getMessageConverter

      protected MessageConverter getMessageConverter()
      受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを返します。
      戻り値:
      メッセージコンバーター。
    • setDefaultRequeueRejected

      public void setDefaultRequeueRejected(boolean defaultRequeueRejected)
      このリスナーのコンテナーと同等のプロパティの値に設定します。非同期リスナーから拒否するときに使用されます。
      パラメーター:
      defaultRequeueRejected - 再キューに入れない場合は false。
      導入:
      2.1.8
    • containerAckMode

      public void containerAckMode(AcknowledgeMode mode)
      インターフェースからコピーされた説明: MessageListener
      コンテナーによって呼び出され、リスナーに確認モードを通知します。
      次で指定:
      インターフェース MessageListenercontainerAckMode 
      パラメーター:
      mode - AcknowledgeMode
    • handleListenerException

      protected void handleListenerException(ThrowableSE ex)
      リスナーの実行中に発生した特定の例外を処理します。デフォルトの実装では、エラーレベルで例外が記録されます。

      オーバーライドされた ChannelAwareMessageListener.onMessage(Message) または ChannelAwareMessageListener.onMessage(Message, com.rabbitmq.client.Channel) からの継承が使用できます

      パラメーター:
      ex - 処理する例外
    • extractMessage

      protected ObjectSE extractMessage(Message message)
      指定された Rabbit メッセージからメッセージ本文を抽出します。
      パラメーター:
      message - Rabbit Message
      戻り値:
      メッセージの内容。引数としてリスナーメソッドに渡されます
    • handleResult

      protected void handleResult(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel)
      リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。
      パラメーター:
      resultArg - 処理する結果オブジェクト (非 null)
      request - 元のリクエストメッセージ
      channel - 動作する Rabbit チャネル (null の場合があります)
      関連事項:
    • handleResult

      protected void handleResult(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel, ObjectSE source)
      リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。
      パラメーター:
      resultArg - 処理する結果オブジェクト (非 null)
      request - 元のリクエストメッセージ
      channel - 動作する Rabbit チャネル (たぶん null)
      source - メソッド呼び出しのソースデータ - 例: o.s.messaging.Message<?>; null の可能性があります
      関連事項:
    • asyncFailure

      protected void asyncFailure(Message request, com.rabbitmq.client.Channel channel, ThrowableSE t, ObjectSE source)
    • doHandleResult

      protected void doHandleResult(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel, ObjectSE source)
    • getReceivedExchange

      protected StringSE getReceivedExchange(Message request)
    • buildMessage

      protected Message buildMessage(com.rabbitmq.client.Channel channel, ObjectSE result, TypeSE genericType)
      指定された結果オブジェクトに基づいて、レスポンスとして送信される Rabbit メッセージを作成します。
      パラメーター:
      channel - 動作する Rabbit チャネル。
      result - リスナーメソッドから返されるメッセージの内容。
      genericType - 型ヘッダーを設定するジェネリクス型。
      戻り値:
      Rabbit Message (決して null ではありません)。
      関連事項:
    • convert

      protected Message convert(ObjectSE result, TypeSE genericType, MessageConverter converter)
      設定に基づいた返信コンテンツ型で、メッセージに変換します。
      パラメーター:
      result - 結果。
      genericType - 型。
      converter - コンバーター。
      戻り値:
      メッセージ。
      導入:
      2.3
    • postProcessResponse

      protected void postProcessResponse(Message request, Message response)
      指定されたレスポンスメッセージを送信する前に後処理します。

      デフォルトの実装では、レスポンスの相関 ID がリクエストメッセージの相関 ID (存在する場合) に設定されます。それ以外の場合はリクエストメッセージ ID。

      パラメーター:
      request - 元の受信 Rabbit メッセージ
      response - 送信しようとしている発信 Rabbit メッセージ
    • getReplyToAddress

      protected Address getReplyToAddress(Message request, ObjectSE source, InvocationResult result)
      指定されたメッセージの返信先アドレスを決定します。

      デフォルトの実装では、最初に提供されたリクエストの Rabbit Reply-To Address をチェックします。それが null でない場合は返されます。null の場合、構成されたデフォルトのレスポンス Exchange とルーティングキーを使用して、返信先アドレスが作成されます。responseExchange プロパティも null である場合、AmqpException がスローされます。

      パラメーター:
      request - 元の受信 Rabbit メッセージ。
      source - ソースデータ (例: o.s.messaging.Message<?>)。
      result - 結果。
      戻り値:
      返信先アドレス (非 null)
      例外:
      AmqpException - Address を決定できない場合
      関連事項:
    • sendResponse

      protected void sendResponse(com.rabbitmq.client.Channel channel, Address replyTo, Message messageIn)
      指定されたレスポンスメッセージを指定された宛先に送信します。
      パラメーター:
      channel - 動作する Rabbit チャネル
      replyTo - 送信時に使用する Rabbit ReplyTo 文字列。現在、ルーティングキーであると解釈されます。
      messageIn - 送信する Rabbit メッセージ
      関連事項:
    • doPublish

      protected void doPublish(com.rabbitmq.client.Channel channel, Address replyTo, Message message) throws IOExceptionSE
      例外:
      IOExceptionSE
    • postProcessChannel

      protected void postProcessChannel(com.rabbitmq.client.Channel channel, Message response)
      レスポンスを送信する前に、指定されたメッセージを後処理します。

      デフォルトの実装は空です。

      パラメーター:
      channel - チャンネル。
      response - 送信しようとしている発信 Rabbit メッセージ