org.springframework.scheduling.annotation
Class AsyncAnnotationBeanPostProcessor
java.lang.Object
org.springframework.aop.framework.ProxyConfig
org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor
- All Implemented Interfaces:
- java.io.Serializable, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered
public class AsyncAnnotationBeanPostProcessor
- extends org.springframework.aop.framework.ProxyConfig
- implements org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered
Bean post-processor that automatically applies asynchronous invocation
behavior to any bean that carries the Async
annotation at class or
method-level by adding a corresponding AsyncAnnotationAdvisor
to the
exposed proxy (either an existing AOP proxy or a newly generated proxy that
implements all of the target's interfaces).
The TaskExecutor
responsible for the asynchronous execution may
be provided as well as the annotation type that indicates a method should be
invoked asynchronously. If no annotation type is specified, this post-
processor will detect both Spring's @Async
annotation as well
as the EJB 3.1 javax.ejb.Asynchronous
annotation.
- Since:
- 3.0
- Author:
- Mark Fisher, Juergen Hoeller
- See Also:
Async
,
AsyncAnnotationAdvisor
,
Serialized Form
Fields inherited from interface org.springframework.core.Ordered |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Methods inherited from class org.springframework.aop.framework.ProxyConfig |
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
AsyncAnnotationBeanPostProcessor
public AsyncAnnotationBeanPostProcessor()
setAsyncAnnotationType
public void setAsyncAnnotationType(java.lang.Class<? extends java.lang.annotation.Annotation> asyncAnnotationType)
- Set the 'async' annotation type to be detected at either class or method
level. By default, both the
Async
annotation and the EJB 3.1
javax.ejb.Asynchronous
annotation will be detected.
This setter property exists so that developers can provide their own
(non-Spring-specific) annotation type to indicate that a method (or all
methods of a given class) should be invoked asynchronously.
- Parameters:
asyncAnnotationType
- the desired annotation type
setExecutor
public void setExecutor(java.util.concurrent.Executor executor)
- Set the
Executor
to use when invoking methods asynchronously.
setBeanClassLoader
public void setBeanClassLoader(java.lang.ClassLoader classLoader)
- Specified by:
setBeanClassLoader
in interface org.springframework.beans.factory.BeanClassLoaderAware
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
throws org.springframework.beans.BeansException
- Specified by:
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware
- Throws:
org.springframework.beans.BeansException
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
getOrder
public int getOrder()
- Specified by:
getOrder
in interface org.springframework.core.Ordered
setOrder
public void setOrder(int order)
postProcessBeforeInitialization
public java.lang.Object postProcessBeforeInitialization(java.lang.Object bean,
java.lang.String beanName)
- Specified by:
postProcessBeforeInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor
postProcessAfterInitialization
public java.lang.Object postProcessAfterInitialization(java.lang.Object bean,
java.lang.String beanName)
- Specified by:
postProcessAfterInitialization
in interface org.springframework.beans.factory.config.BeanPostProcessor