public class AsyncAnnotationBeanPostProcessor
extends org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
implements org.springframework.beans.factory.BeanFactoryAware
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.
Note: The underlying async advisor applies before existing advisors by default, in order to switch to async execution as early as possible in the invocation chain.
Async
,
AsyncAnnotationAdvisor
,
AbstractAdvisingBeanPostProcessor.setBeforeExistingAdvisors(boolean)
,
Serialized FormConstructor and Description |
---|
AsyncAnnotationBeanPostProcessor() |
Modifier and Type | Method and Description |
---|---|
void |
setAsyncAnnotationType(Class<? extends Annotation> asyncAnnotationType)
Set the 'async' annotation type to be detected at either class or method
level.
|
void |
setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) |
void |
setExecutor(Executor executor)
Set the
Executor to use when invoking methods asynchronously. |
getOrder, isEligible, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeanClassLoader, setBeforeExistingAdvisors, setOrder
public void setAsyncAnnotationType(Class<? extends Annotation> asyncAnnotationType)
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.
asyncAnnotationType
- the desired annotation typepublic void setExecutor(Executor executor)
Executor
to use when invoking methods asynchronously.public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
setBeanFactory
in interface org.springframework.beans.factory.BeanFactoryAware