public class RabbitListenerAnnotationBeanPostProcessor
extends java.lang.Object
implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.core.Ordered, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.SmartInitializingSingleton
RabbitListener
to be invoked by a AMQP message listener container created under the cover
by a RabbitListenerContainerFactory
according to the parameters of the annotation.
Annotated methods can use flexible arguments as defined by RabbitListener.
This post-processor is automatically registered by Spring's
<rabbit:annotation-driven> XML element, and also by the EnableRabbit
annotation.
Auto-detect any RabbitListenerConfigurer instances in the container,
allowing for customization of the registry to be used, the default container
factory or for fine-grained control over endpoints registration. See
EnableRabbit Javadoc for complete usage details.
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
DEFAULT_RABBIT_LISTENER_CONTAINER_FACTORY_BEAN_NAME
The bean name of the default
RabbitListenerContainerFactory. |
| Constructor and Description |
|---|
RabbitListenerAnnotationBeanPostProcessor() |
| Modifier and Type | Method and Description |
|---|---|
void |
afterSingletonsInstantiated() |
int |
getOrder() |
java.lang.Object |
postProcessAfterInitialization(java.lang.Object bean,
java.lang.String beanName) |
java.lang.Object |
postProcessBeforeInitialization(java.lang.Object bean,
java.lang.String beanName) |
protected void |
processAmqpListener(RabbitListener rabbitListener,
java.lang.reflect.Method method,
java.lang.Object bean,
java.lang.String beanName) |
protected void |
processListener(MethodRabbitListenerEndpoint endpoint,
RabbitListener rabbitListener,
java.lang.Object bean,
java.lang.Object adminTarget,
java.lang.String beanName) |
void |
setBeanClassLoader(java.lang.ClassLoader classLoader) |
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
Making a
BeanFactory available is optional; if not set,
RabbitListenerConfigurer beans won't get autodetected and an
endpoint registry has to be explicitly configured. |
void |
setContainerFactoryBeanName(java.lang.String containerFactoryBeanName)
Set the name of the
RabbitListenerContainerFactory to use by default. |
void |
setEndpointRegistry(RabbitListenerEndpointRegistry endpointRegistry)
Set the
RabbitListenerEndpointRegistry that will hold the created
endpoint and manage the lifecycle of the related listener container. |
void |
setMessageHandlerMethodFactory(org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory messageHandlerMethodFactory)
Set the
MessageHandlerMethodFactory to use to configure the message
listener responsible to serve an endpoint detected by this processor. |
public static final java.lang.String DEFAULT_RABBIT_LISTENER_CONTAINER_FACTORY_BEAN_NAME
RabbitListenerContainerFactory.public RabbitListenerAnnotationBeanPostProcessor()
public int getOrder()
getOrder in interface org.springframework.core.Orderedpublic void setEndpointRegistry(RabbitListenerEndpointRegistry endpointRegistry)
RabbitListenerEndpointRegistry that will hold the created
endpoint and manage the lifecycle of the related listener container.endpointRegistry - the RabbitListenerEndpointRegistry to set.public void setContainerFactoryBeanName(java.lang.String containerFactoryBeanName)
RabbitListenerContainerFactory to use by default.
If none is specified, "rabbitListenerContainerFactory" is assumed to be defined.
containerFactoryBeanName - the RabbitListenerContainerFactory bean name.public void setMessageHandlerMethodFactory(org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory messageHandlerMethodFactory)
MessageHandlerMethodFactory to use to configure the message
listener responsible to serve an endpoint detected by this processor.
By default, DefaultMessageHandlerMethodFactory is used and it
can be configured further to support additional method arguments
or to customize conversion and validation support. See
DefaultMessageHandlerMethodFactory Javadoc for more details.
messageHandlerMethodFactory - the MessageHandlerMethodFactory instance.public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
BeanFactory available is optional; if not set,
RabbitListenerConfigurer beans won't get autodetected and an
endpoint registry has to be explicitly configured.setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAwarebeanFactory - the BeanFactory to be used.public void setBeanClassLoader(java.lang.ClassLoader classLoader)
setBeanClassLoader in interface org.springframework.beans.factory.BeanClassLoaderAwarepublic void afterSingletonsInstantiated()
afterSingletonsInstantiated in interface org.springframework.beans.factory.SmartInitializingSingletonpublic java.lang.Object postProcessBeforeInitialization(java.lang.Object bean,
java.lang.String beanName)
throws org.springframework.beans.BeansException
postProcessBeforeInitialization in interface org.springframework.beans.factory.config.BeanPostProcessororg.springframework.beans.BeansExceptionpublic java.lang.Object postProcessAfterInitialization(java.lang.Object bean,
java.lang.String beanName)
throws org.springframework.beans.BeansException
postProcessAfterInitialization in interface org.springframework.beans.factory.config.BeanPostProcessororg.springframework.beans.BeansExceptionprotected void processAmqpListener(RabbitListener rabbitListener, java.lang.reflect.Method method, java.lang.Object bean, java.lang.String beanName)
protected void processListener(MethodRabbitListenerEndpoint endpoint, RabbitListener rabbitListener, java.lang.Object bean, java.lang.Object adminTarget, java.lang.String beanName)