public class MessagingMessageListenerAdapter extends AbstractAdaptableMessageListener
MessageListener
adapter that invokes a configurable HandlerAdapter
.
Wraps the incoming AMQP Message
to Spring's Message
abstraction, copying the
standard headers using a configurable
AmqpHeaderMapper
.
The original Message
and
the Channel
are provided as additional arguments so that these can
be injected as method arguments if necessary.
Modifier and Type | Class and Description |
---|---|
protected class |
MessagingMessageListenerAdapter.MessagingMessageConverterAdapter
Delegates payload extraction to
AbstractAdaptableMessageListener.extractMessage(org.springframework.amqp.core.Message message)
to enforce backward compatibility. |
AbstractAdaptableMessageListener.ReplyExpressionRoot
logger
Modifier | Constructor and Description |
---|---|
|
MessagingMessageListenerAdapter() |
|
MessagingMessageListenerAdapter(Object bean,
Method method) |
|
MessagingMessageListenerAdapter(Object bean,
Method method,
boolean returnExceptions,
RabbitListenerErrorHandler errorHandler) |
protected |
MessagingMessageListenerAdapter(Object bean,
Method method,
boolean returnExceptions,
RabbitListenerErrorHandler errorHandler,
boolean batch) |
Modifier and Type | Method and Description |
---|---|
protected Message |
buildMessage(com.rabbitmq.client.Channel channel,
Object result,
Type genericType)
Build a Rabbit message to be sent as response based on the given result object.
|
protected MessagingMessageConverter |
getMessagingMessageConverter() |
protected void |
invokeHandlerAndProcessResult(Message amqpMessage,
com.rabbitmq.client.Channel channel,
Message<?> message) |
void |
onMessage(Message amqpMessage,
com.rabbitmq.client.Channel channel)
Callback for processing a received Rabbit message.
|
void |
setHandlerAdapter(HandlerAdapter handlerAdapter)
Set the
HandlerAdapter to use to invoke the method
processing an incoming Message . |
void |
setHeaderMapper(AmqpHeaderMapper headerMapper)
Set the
AmqpHeaderMapper implementation to use to map the standard
AMQP headers. |
void |
setMessageConverter(MessageConverter messageConverter)
Set the converter that will convert incoming Rabbit messages to listener method arguments, and objects returned
from listener methods back to Rabbit messages.
|
protected Message<?> |
toMessagingMessage(Message amqpMessage) |
containerAckMode, doHandleResult, doPublish, extractMessage, getEncoding, getMessageConverter, getReceivedExchange, getReplyToAddress, handleListenerException, handleResult, handleResult, postProcessChannel, postProcessResponse, sendResponse, setBeanResolver, setBeforeSendReplyPostProcessors, setDefaultRequeueRejected, setEncoding, setMandatoryPublish, setRecoveryCallback, setReplyPostProcessor, setResponseAddress, setResponseExchange, setResponseRoutingKey, setRetryTemplate
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
onMessage, onMessageBatch
onMessageBatch
public MessagingMessageListenerAdapter()
public MessagingMessageListenerAdapter(Object bean, Method method, boolean returnExceptions, RabbitListenerErrorHandler errorHandler)
protected MessagingMessageListenerAdapter(Object bean, Method method, boolean returnExceptions, RabbitListenerErrorHandler errorHandler, boolean batch)
public void setHandlerAdapter(HandlerAdapter handlerAdapter)
HandlerAdapter
to use to invoke the method
processing an incoming Message
.handlerAdapter
- HandlerAdapter
instance.public void setHeaderMapper(AmqpHeaderMapper headerMapper)
AmqpHeaderMapper
implementation to use to map the standard
AMQP headers. By default, a SimpleAmqpHeaderMapper
is used.headerMapper
- the AmqpHeaderMapper
instance.SimpleAmqpHeaderMapper
protected final MessagingMessageConverter getMessagingMessageConverter()
MessagingMessageConverter
for this listener,
being able to convert Message
.public void setMessageConverter(MessageConverter messageConverter)
AbstractAdaptableMessageListener
The default converter is a SimpleMessageConverter
, which is able to handle "text" content-types.
setMessageConverter
in class AbstractAdaptableMessageListener
messageConverter
- The message converter.public void onMessage(Message amqpMessage, com.rabbitmq.client.Channel channel) throws Exception
ChannelAwareMessageListener
Implementors are supposed to process the given Message, typically sending reply messages through the given Session.
amqpMessage
- the received AMQP message (never null
)channel
- the underlying Rabbit Channel (never null
)Exception
- Any.protected void invokeHandlerAndProcessResult(@Nullable Message amqpMessage, com.rabbitmq.client.Channel channel, Message<?> message) throws Exception
Exception
protected Message buildMessage(com.rabbitmq.client.Channel channel, Object result, Type genericType)
buildMessage
in class AbstractAdaptableMessageListener
channel
- the Rabbit Channel to operate onresult
- the content of the message, as returned from the listener methodgenericType
- the generic type of the result.Message
(never null
)setMessageConverter(org.springframework.amqp.support.converter.MessageConverter)