クラス AbstractAdaptableMessageListener

    • フィールドの詳細

      • 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(RecoveryCallback)
      • setRecoveryCallback

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

        protected ObjectSE extractMessage​(Message message)
        指定された Rabbit メッセージからメッセージ本文を抽出します。
        パラメーター:
        message - Rabbit Message
        戻り値:
        メッセージの内容。引数としてリスナーメソッドに渡されます
      • 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 ではありません)。
        関連事項:
        setMessageConverter(org.springframework.amqp.support.converter.MessageConverter)
      • 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 を決定できない場合
        関連事項:
        setResponseAddress(String), setResponseRoutingKey(String), Message.getMessageProperties(), MessageProperties.getReplyTo()
      • sendResponse

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

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

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

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