クラス AbstractAdaptableMessageListener
- 実装されたすべてのインターフェース:
MessageListener
,ChannelAwareMessageListener
Message
のペイロードを抽出するために必要なインフラストラクチャを提供する抽象 MessageListener
アダプター。- 導入:
- 1.4
- 作成者:
- Stephane Nicoll, Gary Russell, Artem Bilan, Johan Haleby
- 関連事項:
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static final class
応答式評価のルートオブジェクト。フィールドサマリー
フィールドコンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected void
asyncFailure
(Message request, com.rabbitmq.client.Channel channel, ThrowableSE t, ObjectSE source) protected Message
buildMessage
(com.rabbitmq.client.Channel channel, ObjectSE result, TypeSE genericType) 指定された結果オブジェクトに基づいて、レスポンスとして送信される Rabbit メッセージを作成します。void
コンテナーによって呼び出され、リスナーに確認モードを通知します。protected Message
convert
(ObjectSE result, TypeSE genericType, MessageConverter converter) 設定に基づいた返信コンテンツ型で、メッセージに変換します。protected void
doHandleResult
(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel, ObjectSE source) protected void
protected ObjectSE
extractMessage
(Message message) 指定された Rabbit メッセージからメッセージ本文を抽出します。メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。protected MessageConverter
受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを返します。protected StringSE
getReceivedExchange
(Message request) protected StringSE
返信コンテンツ型を取得します。protected Address
getReplyToAddress
(Message request, ObjectSE source, InvocationResult result) 指定されたメッセージの返信先アドレスを決定します。protected void
リスナーの実行中に発生した特定の例外を処理します。protected void
handleResult
(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel) リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。protected void
handleResult
(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel, ObjectSE source) リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。protected boolean
コンバーターによって設定されたコンテンツ型が優先されるかどうかを返します。protected void
postProcessChannel
(com.rabbitmq.client.Channel channel, Message response) レスポンスを送信する前に、指定されたメッセージを後処理します。protected void
postProcessResponse
(Message request, Message response) 指定されたレスポンスメッセージを送信する前に後処理します。protected void
sendResponse
(com.rabbitmq.client.Channel channel, Address replyTo, Message messageIn) 指定されたレスポンスメッセージを指定された宛先に送信します。void
setBeanResolver
(BeanResolver beanResolver) ランタイム SpEL 式の Bean リゾルバーを設定します。void
setBeforeSendReplyPostProcessors
(MessagePostProcessor... beforeSendReplyPostProcessors) 返信を送信する前に適用されるポストプロセッサーを設定します。void
setConverterWinsContentType
(boolean converterWinsContentType) コンバーターで設定したコンテンツ型を優先するかどうかを設定します。void
setDefaultRequeueRejected
(boolean defaultRequeueRejected) このリスナーのコンテナーと同等のプロパティの値に設定します。void
setEncoding
(StringSE encoding) メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。void
setMandatoryPublish
(boolean mandatoryPublish) void
setMessageConverter
(MessageConverter messageConverter) 受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを設定します。void
setRecoveryCallback
(org.springframework.retry.RecoveryCallback<?> recoveryCallback) 再試行が使い果たされたときに呼び出すRecoveryCallback
を設定します。void
setReplyContentType
(StringSE replyContentType) 返信内容の種類を設定します。void
setReplyPostProcessor
(ReplyPostProcessor replyPostProcessor) ReplyPostProcessor
を設定して、レスポンスメッセージを送信する前に後処理します。void
setResponseAddress
(StringSE defaultReplyTo) レスポンスメッセージを送信するときに使用するデフォルトの replyTo アドレスを設定します。void
setResponseExchange
(StringSE responseExchange) レスポンスメッセージを送信するときに使用する交換を設定します。void
setResponseRoutingKey
(StringSE responseRoutingKey) レスポンスメッセージを送信するときに使用するルーティングキーを設定します。void
setRetryTemplate
(org.springframework.retry.support.RetryTemplate retryTemplate) 応答を送信するときに使用するRetryTemplate
を設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener から継承されたメソッド
onMessage, onMessage, onMessageBatch
インターフェース org.springframework.amqp.core.MessageListener から継承されたメソッド
isAsyncReplies, onMessageBatch
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
AbstractAdaptableMessageListener
public AbstractAdaptableMessageListener()
メソッドの詳細
setResponseRoutingKey
レスポンスメッセージを送信するときに使用するルーティングキーを設定します。これは、"ReplyTo" プロパティを持たないリクエストメッセージの場合に適用されます。レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。
- パラメーター:
responseRoutingKey
- ルーティングキー。
setEncoding
メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。- パラメーター:
encoding
- 設定するエンコーディング。
getEncoding
メッセージプロパティでバイト配列と文字列を相互変換するときに使用するエンコーディング。- 戻り値:
- エンコーディングのエンコーディング。
setResponseExchange
レスポンスメッセージを送信するときに使用する交換を設定します。これは、受信したメッセージからの交換が null の場合にのみ使用されます。レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。
- パラメーター:
responseExchange
- 交換。
setResponseAddress
レスポンスメッセージを送信するときに使用するデフォルトの replyTo アドレスを設定します。これは、受信したメッセージの replyTo が null の場合にのみ使用されます。レスポンス宛先は、結果オブジェクトを返すリスナーメソッドにのみ関連します。結果オブジェクトはレスポンスメッセージにラップされ、レスポンス宛先に送信されます。
これは
Address
で解析されるため、exchange/rk の形式である必要があります。"!{...}" で囲まれた文字列にすることができます。この場合、式は実行時に評価されます。詳細については、リファレンスマニュアルを参照してください。
- パラメーター:
defaultReplyTo
- 返信先アドレス。- 導入:
- 1.6
setMandatoryPublish
public void setMandatoryPublish(boolean mandatoryPublish) setMessageConverter
受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを設定します。デフォルトのコンバーターは、「テキスト」コンテンツ型を処理できる
SimpleMessageConverter
です。- パラメーター:
messageConverter
- メッセージコンバーター。
setBeforeSendReplyPostProcessors
返信を送信する前に適用されるポストプロセッサーを設定します。- パラメーター:
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
ランタイム SpEL 式の Bean リゾルバーを設定します。また、標準型のコンバーターとマップアクセサーを使用して評価コンテキストを構成します。- パラメーター:
beanResolver
- リゾルバー。- 導入:
- 1.6
setReplyPostProcessor
ReplyPostProcessor
を設定して、レスポンスメッセージを送信する前に後処理します。これは、correlationId ヘッダーを設定するpostProcessResponse(Message, Message)
の後に呼び出されます。- パラメーター:
replyPostProcessor
- ポストプロセッサー。- 導入:
- 2.2.5
getReplyContentType
返信コンテンツ型を取得します。- 戻り値:
- コンテンツ型。
- 導入:
- 2.3
setReplyContentType
返信内容の種類を設定します。- パラメーター:
replyContentType
- コンテンツ型。- 導入:
- 2.3
isConverterWinsContentType
protected boolean isConverterWinsContentType()コンバーターによって設定されたコンテンツ型が優先されるかどうかを返します。- 戻り値:
- 返信コンテンツ型を常に適用する場合は false。
- 導入:
- 2.3
setConverterWinsContentType
public void setConverterWinsContentType(boolean converterWinsContentType) コンバーターで設定したコンテンツ型を優先するかどうかを設定します。- パラメーター:
converterWinsContentType
- 返信コンテンツ型を常に適用する場合は false。- 導入:
- 2.3
getMessageConverter
受信 Rabbit メッセージをリスナーメソッドの引数に変換し、リスナーメソッドから返されたオブジェクトを Rabbit メッセージに戻すコンバーターを返します。- 戻り値:
- メッセージコンバーター。
setDefaultRequeueRejected
public void setDefaultRequeueRejected(boolean defaultRequeueRejected) このリスナーのコンテナーと同等のプロパティの値に設定します。非同期リスナーから拒否するときに使用されます。- パラメーター:
defaultRequeueRejected
- 再キューに入れない場合は false。- 導入:
- 2.1.8
containerAckMode
インターフェースからコピーされた説明:MessageListener
コンテナーによって呼び出され、リスナーに確認モードを通知します。- 次で指定:
- インターフェース
MessageListener
のcontainerAckMode
- パラメーター:
mode
-AcknowledgeMode
handleListenerException
リスナーの実行中に発生した特定の例外を処理します。デフォルトの実装では、エラーレベルで例外が記録されます。オーバーライドされた
ChannelAwareMessageListener.onMessage(Message)
またはChannelAwareMessageListener.onMessage(Message, com.rabbitmq.client.Channel)
からの継承が使用できます- パラメーター:
ex
- 処理する例外
extractMessage
指定された Rabbit メッセージからメッセージ本文を抽出します。- パラメーター:
message
- RabbitMessage
- 戻り値:
- メッセージの内容。引数としてリスナーメソッドに渡されます
handleResult
protected void handleResult(InvocationResult resultArg, Message request, com.rabbitmq.client.Channel channel) リスナメソッドから返された結果オブジェクトを処理し、レスポンスメッセージを送り返します。- パラメーター:
resultArg
- 処理する結果オブジェクト (非null
)request
- 元のリクエストメッセージchannel
- 動作する Rabbit チャネル (null
の場合があります)- 関連事項:
buildMessage(com.rabbitmq.client.Channel, java.lang.Object, java.lang.reflect.Type)
postProcessResponse(org.springframework.amqp.core.Message, org.springframework.amqp.core.Message)
getReplyToAddress(Message, Object, InvocationResult)
sendResponse(com.rabbitmq.client.Channel, org.springframework.amqp.core.Address, org.springframework.amqp.core.Message)
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 の可能性があります- 関連事項:
buildMessage(com.rabbitmq.client.Channel, java.lang.Object, java.lang.reflect.Type)
postProcessResponse(org.springframework.amqp.core.Message, org.springframework.amqp.core.Message)
getReplyToAddress(Message, Object, InvocationResult)
sendResponse(com.rabbitmq.client.Channel, org.springframework.amqp.core.Address, org.springframework.amqp.core.Message)
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
buildMessage
protected Message buildMessage(com.rabbitmq.client.Channel channel, ObjectSE result, TypeSE genericType) 指定された結果オブジェクトに基づいて、レスポンスとして送信される Rabbit メッセージを作成します。- パラメーター:
channel
- 動作する Rabbit チャネル。result
- リスナーメソッドから返されるメッセージの内容。genericType
- 型ヘッダーを設定するジェネリクス型。- 戻り値:
- Rabbit
Message
(決してnull
ではありません)。 - 関連事項:
convert
設定に基づいた返信コンテンツ型で、メッセージに変換します。- パラメーター:
result
- 結果。genericType
- 型。converter
- コンバーター。- 戻り値:
- メッセージ。
- 導入:
- 2.3
postProcessResponse
指定されたレスポンスメッセージを送信する前に後処理します。デフォルトの実装では、レスポンスの相関 ID がリクエストメッセージの相関 ID (存在する場合) に設定されます。それ以外の場合はリクエストメッセージ ID。
- パラメーター:
request
- 元の受信 Rabbit メッセージresponse
- 送信しようとしている発信 Rabbit メッセージ
getReplyToAddress
指定されたメッセージの返信先アドレスを決定します。デフォルトの実装では、最初に提供されたリクエストの 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 postProcessChannel
レスポンスを送信する前に、指定されたメッセージを後処理します。デフォルトの実装は空です。
- パラメーター:
channel
- チャンネル。response
- 送信しようとしている発信 Rabbit メッセージ