Class AbstractRabbitListenerContainerFactory<C extends AbstractMessageListenerContainer>
- java.lang.Object
-
- org.springframework.amqp.rabbit.config.BaseRabbitListenerContainerFactory<C>
-
- org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory<C>
-
- Type Parameters:
C
- the container type.
- All Implemented Interfaces:
RabbitListenerContainerFactory<C>
,Aware
,ApplicationContextAware
,ApplicationEventPublisherAware
- Direct Known Subclasses:
DirectRabbitListenerContainerFactory
,SimpleRabbitListenerContainerFactory
public abstract class AbstractRabbitListenerContainerFactory<C extends AbstractMessageListenerContainer> extends BaseRabbitListenerContainerFactory<C> implements ApplicationContextAware, ApplicationEventPublisherAware
RabbitListenerContainerFactory
for Spring's base container implementation.- Since:
- 1.4
- Author:
- Stephane Nicoll, Gary Russell, Artem Bilan, Joris Kuipers
- See Also:
AbstractMessageListenerContainer
-
-
Field Summary
Fields Modifier and Type Field Description protected AtomicInteger
counter
protected Log
logger
-
Constructor Summary
Constructors Constructor Description AbstractRabbitListenerContainerFactory()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract C
createContainerInstance()
Create an empty container instance.C
createListenerContainer(RabbitListenerEndpoint endpoint)
Create aMessageListenerContainer
for the givenRabbitListenerEndpoint
.protected void
initializeContainer(C instance, RabbitListenerEndpoint endpoint)
Further initialize the specified container.void
setAcknowledgeMode(AcknowledgeMode acknowledgeMode)
void
setAfterReceivePostProcessors(MessagePostProcessor... postProcessors)
Set post processors which will be applied after the Message is received.void
setApplicationContext(ApplicationContext applicationContext)
void
setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
void
setAutoStartup(Boolean autoStartup)
void
setBatchingStrategy(BatchingStrategy batchingStrategy)
Set aBatchingStrategy
to use when debatching messages.void
setBatchListener(boolean isBatch)
Set to true to receive a list of debatched messages that were created by aBatchingRabbitTemplate
.void
setChannelTransacted(Boolean channelTransacted)
void
setConnectionFactory(ConnectionFactory connectionFactory)
void
setConsumerTagStrategy(ConsumerTagStrategy consumerTagStrategy)
void
setContainerCustomizer(ContainerCustomizer<C> containerCustomizer)
Set aContainerCustomizer
that is invoked after a container is created and configured to enable further customization of the container.void
setDeBatchingEnabled(Boolean deBatchingEnabled)
Determine whether or not the container should de-batch batched messages (true) or call the listener with the batch (false).void
setErrorHandler(ErrorHandler errorHandler)
void
setFailedDeclarationRetryInterval(Long failedDeclarationRetryInterval)
void
setGlobalQos(boolean globalQos)
Apply prefetch to the entire channel.void
setIdleEventInterval(Long idleEventInterval)
How often to publish idle container events.void
setMessageConverter(MessageConverter messageConverter)
void
setMismatchedQueuesFatal(Boolean mismatchedQueuesFatal)
void
setMissingQueuesFatal(Boolean missingQueuesFatal)
void
setPhase(int phase)
void
setPrefetchCount(Integer prefetch)
void
setRecoveryBackOff(BackOff recoveryBackOff)
void
setRecoveryInterval(Long recoveryInterval)
void
setTaskExecutor(Executor taskExecutor)
void
setTransactionManager(PlatformTransactionManager transactionManager)
-
Methods inherited from class org.springframework.amqp.rabbit.config.BaseRabbitListenerContainerFactory
applyCommonOverrides, getAdviceChain, getDefaultRequeueRejected, setAdviceChain, setBeforeSendReplyPostProcessors, setDefaultRequeueRejected, setReplyRecoveryCallback, setRetryTemplate
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory
createListenerContainer
-
-
-
-
Field Detail
-
logger
protected final Log logger
-
counter
protected final AtomicInteger counter
-
-
Method Detail
-
setConnectionFactory
public void setConnectionFactory(ConnectionFactory connectionFactory)
- Parameters:
connectionFactory
- The connection factory.- See Also:
RabbitAccessor.setConnectionFactory(ConnectionFactory)
-
setErrorHandler
public void setErrorHandler(ErrorHandler errorHandler)
- Parameters:
errorHandler
- The error handler.- See Also:
AbstractMessageListenerContainer.setErrorHandler(org.springframework.util.ErrorHandler)
-
setMessageConverter
public void setMessageConverter(MessageConverter messageConverter)
- Parameters:
messageConverter
- the message converter to use- See Also:
RabbitListenerEndpoint.setMessageConverter(MessageConverter)
-
setAcknowledgeMode
public void setAcknowledgeMode(AcknowledgeMode acknowledgeMode)
- Parameters:
acknowledgeMode
- the acknowledge mode to set. Defaults toAcknowledgeMode.AUTO
- See Also:
AbstractMessageListenerContainer.setAcknowledgeMode(AcknowledgeMode)
-
setChannelTransacted
public void setChannelTransacted(Boolean channelTransacted)
- Parameters:
channelTransacted
- the flag value to set- See Also:
RabbitAccessor.setChannelTransacted(boolean)
-
setTaskExecutor
public void setTaskExecutor(Executor taskExecutor)
- Parameters:
taskExecutor
- theExecutor
to use.- See Also:
AbstractMessageListenerContainer.setTaskExecutor(java.util.concurrent.Executor)
-
setTransactionManager
public void setTransactionManager(PlatformTransactionManager transactionManager)
- Parameters:
transactionManager
- thePlatformTransactionManager
to use.- See Also:
AbstractMessageListenerContainer.setTransactionManager(org.springframework.transaction.PlatformTransactionManager)
-
setPrefetchCount
public void setPrefetchCount(Integer prefetch)
- Parameters:
prefetch
- the prefetch count- See Also:
AbstractMessageListenerContainer.setPrefetchCount(int)
-
setRecoveryInterval
public void setRecoveryInterval(Long recoveryInterval)
- Parameters:
recoveryInterval
- The recovery interval.- See Also:
AbstractMessageListenerContainer.setRecoveryInterval(long)
-
setRecoveryBackOff
public void setRecoveryBackOff(BackOff recoveryBackOff)
- Parameters:
recoveryBackOff
- The BackOff to recover.- Since:
- 1.5
- See Also:
AbstractMessageListenerContainer.setRecoveryBackOff(BackOff)
-
setMissingQueuesFatal
public void setMissingQueuesFatal(Boolean missingQueuesFatal)
- Parameters:
missingQueuesFatal
- the missingQueuesFatal to set.- See Also:
AbstractMessageListenerContainer.setMissingQueuesFatal(boolean)
-
setMismatchedQueuesFatal
public void setMismatchedQueuesFatal(Boolean mismatchedQueuesFatal)
- Parameters:
mismatchedQueuesFatal
- the mismatchedQueuesFatal to set.- Since:
- 1.6
- See Also:
AbstractMessageListenerContainer.setMismatchedQueuesFatal(boolean)
-
setConsumerTagStrategy
public void setConsumerTagStrategy(ConsumerTagStrategy consumerTagStrategy)
- Parameters:
consumerTagStrategy
- the consumerTagStrategy to set- See Also:
AbstractMessageListenerContainer.setConsumerTagStrategy(ConsumerTagStrategy)
-
setIdleEventInterval
public void setIdleEventInterval(Long idleEventInterval)
How often to publish idle container events.- Parameters:
idleEventInterval
- the interval.
-
setFailedDeclarationRetryInterval
public void setFailedDeclarationRetryInterval(Long failedDeclarationRetryInterval)
-
setApplicationEventPublisher
public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)
- Specified by:
setApplicationEventPublisher
in interfaceApplicationEventPublisherAware
-
setApplicationContext
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException
- Specified by:
setApplicationContext
in interfaceApplicationContextAware
- Throws:
BeansException
-
setAutoStartup
public void setAutoStartup(Boolean autoStartup)
- Parameters:
autoStartup
- true for auto startup.- See Also:
AbstractMessageListenerContainer.setAutoStartup(boolean)
-
setPhase
public void setPhase(int phase)
- Parameters:
phase
- The phase.- See Also:
AbstractMessageListenerContainer.setPhase(int)
-
setAfterReceivePostProcessors
public void setAfterReceivePostProcessors(MessagePostProcessor... postProcessors)
Set post processors which will be applied after the Message is received.- Parameters:
postProcessors
- the post processors.- Since:
- 2.0
- See Also:
AbstractMessageListenerContainer.setAfterReceivePostProcessors(MessagePostProcessor...)
-
setContainerCustomizer
public void setContainerCustomizer(ContainerCustomizer<C> containerCustomizer)
Set aContainerCustomizer
that is invoked after a container is created and configured to enable further customization of the container.- Parameters:
containerCustomizer
- the customizer.- Since:
- 2.2.2
-
setBatchListener
public void setBatchListener(boolean isBatch)
Set to true to receive a list of debatched messages that were created by aBatchingRabbitTemplate
.- Parameters:
isBatch
- true for a batch listener.- Since:
- 2.2
- See Also:
setBatchingStrategy(BatchingStrategy)
-
setBatchingStrategy
public void setBatchingStrategy(BatchingStrategy batchingStrategy)
Set aBatchingStrategy
to use when debatching messages.- Parameters:
batchingStrategy
- the batching strategy.- Since:
- 2.2
- See Also:
setBatchListener(boolean)
-
setDeBatchingEnabled
public void setDeBatchingEnabled(Boolean deBatchingEnabled)
Determine whether or not the container should de-batch batched messages (true) or call the listener with the batch (false). Default: true.- Parameters:
deBatchingEnabled
- whether or not to disable de-batching of messages.- Since:
- 2.2
- See Also:
AbstractMessageListenerContainer.setDeBatchingEnabled(boolean)
-
setGlobalQos
public void setGlobalQos(boolean globalQos)
Apply prefetch to the entire channel.- Parameters:
globalQos
- true for a channel-wide prefetch.- Since:
- 2.2.17
- See Also:
Channel.basicQos(int, boolean)
-
createListenerContainer
public C createListenerContainer(RabbitListenerEndpoint endpoint)
Description copied from interface:RabbitListenerContainerFactory
Create aMessageListenerContainer
for the givenRabbitListenerEndpoint
.- Specified by:
createListenerContainer
in interfaceRabbitListenerContainerFactory<C extends AbstractMessageListenerContainer>
- Specified by:
createListenerContainer
in classBaseRabbitListenerContainerFactory<C extends AbstractMessageListenerContainer>
- Parameters:
endpoint
- the endpoint to configure.- Returns:
- the created container.
-
createContainerInstance
protected abstract C createContainerInstance()
Create an empty container instance.- Returns:
- the new container instance.
-
initializeContainer
protected void initializeContainer(C instance, RabbitListenerEndpoint endpoint)
Further initialize the specified container.Subclasses can inherit from this method to apply extra configuration if necessary.
- Parameters:
instance
- the container instance to configure.endpoint
- the endpoint.
-
-