Class JmsListenerAnnotationBeanPostProcessor
- All Implemented Interfaces:
org.springframework.beans.factory.Aware
,org.springframework.beans.factory.BeanFactoryAware
,org.springframework.beans.factory.config.BeanPostProcessor
,org.springframework.beans.factory.SmartInitializingSingleton
,org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor
,org.springframework.core.Ordered
JmsListener
to be invoked by a JMS message listener container created under the cover
by a JmsListenerContainerFactory
according to the attributes of the annotation.
Annotated methods can use flexible arguments as defined by JmsListener
.
This post-processor is automatically registered by Spring's
<jms:annotation-driven>
XML element, and also by the EnableJms
annotation.
Autodetects any JmsListenerConfigurer
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 the
EnableJms
javadocs for complete usage details.
- Since:
- 4.1
- Author:
- Stephane Nicoll, Juergen Hoeller
- See Also:
-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
protected MethodJmsListenerEndpoint
Instantiate an emptyMethodJmsListenerEndpoint
for further configuration with provided parameters inprocessJmsListener(org.springframework.jms.annotation.JmsListener, java.lang.reflect.Method, java.lang.Object)
.int
getOrder()
postProcessAfterInitialization
(Object bean, String beanName) postProcessBeforeInitialization
(Object bean, String beanName) void
postProcessMergedBeanDefinition
(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) protected void
processJmsListener
(JmsListener jmsListener, Method mostSpecificMethod, Object bean) Process the givenJmsListener
annotation on the given method, registering a corresponding endpoint for the given bean instance.void
setBeanFactory
(org.springframework.beans.factory.BeanFactory beanFactory) Making aBeanFactory
available is optional; if not set,JmsListenerConfigurer
beans won't get autodetected and anendpoint registry
has to be explicitly configured.void
setContainerFactoryBeanName
(String containerFactoryBeanName) Set the name of theJmsListenerContainerFactory
to use by default.void
setEndpointRegistry
(JmsListenerEndpointRegistry endpointRegistry) Set theJmsListenerEndpointRegistry
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 theMessageHandlerMethodFactory
to use to configure the message listener responsible to serve an endpoint detected by this processor.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor
resetBeanDefinition
-
Field Details
-
logger
protected final org.apache.commons.logging.Log logger
-
-
Constructor Details
-
JmsListenerAnnotationBeanPostProcessor
public JmsListenerAnnotationBeanPostProcessor()
-
-
Method Details
-
getOrder
public int getOrder()- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered
-
setContainerFactoryBeanName
Set the name of theJmsListenerContainerFactory
to use by default.If none is specified, "jmsListenerContainerFactory" is assumed to be defined.
-
setEndpointRegistry
Set theJmsListenerEndpointRegistry
that will hold the created endpoint and manage the lifecycle of the related listener container. -
setMessageHandlerMethodFactory
public void setMessageHandlerMethodFactory(org.springframework.messaging.handler.annotation.support.MessageHandlerMethodFactory messageHandlerMethodFactory) Set theMessageHandlerMethodFactory
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. SeeDefaultMessageHandlerMethodFactory
Javadoc for more details. -
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) Making aBeanFactory
available is optional; if not set,JmsListenerConfigurer
beans won't get autodetected and anendpoint registry
has to be explicitly configured.- Specified by:
setBeanFactory
in interfaceorg.springframework.beans.factory.BeanFactoryAware
-
afterSingletonsInstantiated
public void afterSingletonsInstantiated()- Specified by:
afterSingletonsInstantiated
in interfaceorg.springframework.beans.factory.SmartInitializingSingleton
-
postProcessMergedBeanDefinition
public void postProcessMergedBeanDefinition(org.springframework.beans.factory.support.RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) - Specified by:
postProcessMergedBeanDefinition
in interfaceorg.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor
-
postProcessBeforeInitialization
public Object postProcessBeforeInitialization(Object bean, String beanName) throws org.springframework.beans.BeansException - Specified by:
postProcessBeforeInitialization
in interfaceorg.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.BeansException
-
postProcessAfterInitialization
public Object postProcessAfterInitialization(Object bean, String beanName) throws org.springframework.beans.BeansException - Specified by:
postProcessAfterInitialization
in interfaceorg.springframework.beans.factory.config.BeanPostProcessor
- Throws:
org.springframework.beans.BeansException
-
processJmsListener
Process the givenJmsListener
annotation on the given method, registering a corresponding endpoint for the given bean instance.- Parameters:
jmsListener
- the annotation to processmostSpecificMethod
- the annotated methodbean
- the instance to invoke the method on- See Also:
-
createMethodJmsListenerEndpoint
Instantiate an emptyMethodJmsListenerEndpoint
for further configuration with provided parameters inprocessJmsListener(org.springframework.jms.annotation.JmsListener, java.lang.reflect.Method, java.lang.Object)
.- Returns:
- a new
MethodJmsListenerEndpoint
or subclass thereof - Since:
- 4.1.9
- See Also:
-