Class AmqpClientMessageHandler
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.MessageHandlerSupport
org.springframework.integration.handler.AbstractMessageHandler
org.springframework.integration.handler.AbstractMessageProducingHandler
org.springframework.integration.handler.AbstractReplyProducingMessageHandler
org.springframework.integration.amqp.outbound.AmqpClientMessageHandler
- All Implemented Interfaces:
org.reactivestreams.Subscriber<Message<?>>
,Aware
,BeanClassLoaderAware
,BeanFactoryAware
,BeanNameAware
,DisposableBean
,InitializingBean
,ApplicationContextAware
,Ordered
,ComponentSourceAware
,ExpressionCapable
,Orderable
,MessageProducer
,HeaderPropagationAware
,IntegrationPattern
,NamedComponent
,IntegrationManagement
,TrackableComponent
,MessageHandler
,reactor.core.CoreSubscriber<Message<?>>
An
AbstractReplyProducingMessageHandler
implementation for AMQP 1.0 client.
With the AbstractReplyProducingMessageHandler.setRequiresReply(boolean)
configured as true
, this message handler
behaves as a gateway - the RPC over AMQP.
In this case, when replyPayloadTypeExpression
is provided,
the messageConverter
must be an instance of SmartMessageConverter
.
This handler is async
by default.
In async mode, the error is sent to the error channel even if not in a gateway mode.
The exchangeExpression
, routingKeyExpression
and queueExpression
are optional.
In this case they have to be supplied by the AsyncAmqpTemplate
.
- Since:
- 7.0
- Author:
- Artem Bilan
-
Nested Class Summary
Nested classes/interfaces inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
AbstractReplyProducingMessageHandler.RequestHandler
Nested classes/interfaces inherited from interface org.springframework.integration.support.management.IntegrationManagement
IntegrationManagement.ManagementOverrides
-
Field Summary
Fields inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
messagingTemplate
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
EXPRESSION_PARSER, logger
Fields inherited from interface org.springframework.integration.support.management.IntegrationManagement
METER_PREFIX, RECEIVE_COUNTER_NAME, SEND_TIMER_NAME
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
ConstructorsConstructorDescriptionAmqpClientMessageHandler
(AsyncAmqpTemplate amqpTemplate) Construct an instance with the providedAsyncAmqpTemplate
. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
doInit()
protected @Nullable Object
handleRequestMessage
(Message<?> requestMessage) Subclasses must implement this method to handle the request Message.void
setExchange
(String exchange) void
setExchangeExpression
(Expression exchangeExpression) void
setExchangeExpressionString
(String exchangeExpression) void
setHeaderMapper
(AmqpHeaderMapper headerMapper) void
setMessageConverter
(MessageConverter messageConverter) void
void
setQueueExpression
(Expression queueExpression) void
setQueueExpressionString
(String queueExpression) void
setReplyPayloadType
(Class<?> replyPayloadType) Set the reply payload type.void
setReplyPayloadType
(ResolvableType replyPayloadType) Set the reply payload type.void
setReplyPayloadTypeExpression
(Expression replyPayloadTypeExpression) Set a SpEL expression for the reply payload type.void
setReplyPayloadTypeExpressionString
(String replyPayloadTypeExpression) Set a SpEL expression for the reply payload type.void
setReturnMessage
(boolean returnMessage) Set to true to return the reply as a whole AMQP message.void
setRoutingKey
(String routingKey) void
setRoutingKeyExpression
(Expression routingKeyExpression) void
setRoutingKeyExpressionString
(String routingKeyExpression) Methods inherited from class org.springframework.integration.handler.AbstractReplyProducingMessageHandler
doInvokeAdvisedRequestHandler, getBeanClassLoader, getIntegrationPatternType, getRequiresReply, handleMessageInternal, hasAdviceChain, onInit, setAdviceChain, setBeanClassLoader, setRequiresReply
Methods inherited from class org.springframework.integration.handler.AbstractMessageProducingHandler
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, messageBuilderForReply, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, setupMessageProcessor, shouldCopyRequestHeaders, shouldSplitOutput, updateNotPropagatedHeaders
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
handleMessage, onComplete, onError, onNext, onSubscribe, setObservationConvention
Methods inherited from class org.springframework.integration.handler.MessageHandlerSupport
buildSendTimer, destroy, getManagedName, getManagedType, getMetricsCaptor, getObservationRegistry, getOrder, getOverrides, isLoggingEnabled, isObserved, registerMetricsCaptor, registerObservationRegistry, sendTimer, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, shouldTrack
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentDescription, getComponentName, getComponentSource, getConversionService, getExpression, getIntegrationProperties, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentDescription, setComponentName, setComponentSource, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface reactor.core.CoreSubscriber
currentContext
Methods inherited from interface org.springframework.integration.support.management.IntegrationManagement
getThisAs
Methods inherited from interface org.springframework.integration.support.context.NamedComponent
getBeanName, getComponentName
-
Constructor Details
-
AmqpClientMessageHandler
Construct an instance with the providedAsyncAmqpTemplate
. TheAsyncAmqpTemplate
must be an implementation for AMQP 1.0 protocol, e.g.RabbitAmqpTemplate
.- Parameters:
amqpTemplate
- theAsyncAmqpTemplate
to use.
-
-
Method Details
-
setHeaderMapper
-
setMessageConverter
-
setExchange
-
setExchangeExpressionString
-
setExchangeExpression
-
setRoutingKey
-
setRoutingKeyExpressionString
-
setRoutingKeyExpression
-
setQueue
-
setQueueExpressionString
-
setQueueExpression
-
setReplyPayloadType
Set the reply payload type. Used only ifAbstractReplyProducingMessageHandler.setRequiresReply(boolean)
istrue
.- Parameters:
replyPayloadType
- the reply payload type.
-
setReplyPayloadType
Set the reply payload type. Used only ifAbstractReplyProducingMessageHandler.setRequiresReply(boolean)
istrue
.- Parameters:
replyPayloadType
- the reply payload type.
-
setReplyPayloadTypeExpressionString
Set a SpEL expression for the reply payload type. Used only ifAbstractReplyProducingMessageHandler.setRequiresReply(boolean)
istrue
. Must be evaluated to aClass
orResolvableType
.- Parameters:
replyPayloadTypeExpression
- the expression for a reply payload type.
-
setReplyPayloadTypeExpression
Set a SpEL expression for the reply payload type. Used only ifAbstractReplyProducingMessageHandler.setRequiresReply(boolean)
istrue
. Must be evaluated to aClass
orResolvableType
.- Parameters:
replyPayloadTypeExpression
- the expression for a reply payload type.
-
setReturnMessage
public void setReturnMessage(boolean returnMessage) Set to true to return the reply as a whole AMQP message. Used only in the gateway mode.- Parameters:
returnMessage
- true to return the reply as a whole AMQP message.
-
getComponentType
- Specified by:
getComponentType
in interfaceNamedComponent
- Overrides:
getComponentType
in classMessageHandlerSupport
-
doInit
protected void doInit()- Overrides:
doInit
in classAbstractReplyProducingMessageHandler
-
handleRequestMessage
Description copied from class:AbstractReplyProducingMessageHandler
Subclasses must implement this method to handle the request Message. The return value may be a Message, a MessageBuilder, or any plain Object. The base class will handle the final creation of a reply Message from any of those starting points. If the return value is null, the Message flow will end here.- Specified by:
handleRequestMessage
in classAbstractReplyProducingMessageHandler
- Parameters:
requestMessage
- The request message.- Returns:
- The result of handling the message, or
null
.
-