public class AsyncAnnotationAdvisor extends AbstractPointcutAdvisor implements BeanFactoryAware
Async
annotation. This annotation can be used at the method and type level in
implementation classes as well as in service interfaces.
This advisor detects the EJB 3.1 javax.ejb.Asynchronous
annotation as well, treating it exactly like Spring's own Async.
Furthermore, a custom async annotation type may get specified through the
"asyncAnnotationType" property.
PersistenceExceptionTranslationAdvisor,
Repository,
DataAccessException,
PersistenceExceptionTranslator,
Serialized FormHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| Constructor and Description |
|---|
AsyncAnnotationAdvisor()
Create a new
AsyncAnnotationAdvisor for bean-style configuration. |
AsyncAnnotationAdvisor(Executor executor)
Create a new
AsyncAnnotationAdvisor for the given task executor. |
| Modifier and Type | Method and Description |
|---|---|
protected Advice |
buildAdvice(Executor executor) |
protected Pointcut |
buildPointcut(Set<Class<? extends Annotation>> asyncAnnotationTypes)
Calculate a pointcut for the given async annotation types, if any.
|
void |
delegateBeanFactory(BeanFactory beanFactory) |
Advice |
getAdvice()
Return the advice part of this aspect.
|
Pointcut |
getPointcut()
Get the Pointcut that drives this advisor.
|
void |
setAsyncAnnotationType(Class<? extends Annotation> asyncAnnotationType)
Set the 'async' annotation type.
|
void |
setBeanFactory(BeanFactory beanFactory)
Set the
BeanFactory to be used when looking up executors by qualifier. |
void |
setTaskExecutor(Executor executor)
Specify the task executor to use for asynchronous methods.
|
equals, getOrder, hashCode, isPerInstance, setOrderpublic AsyncAnnotationAdvisor()
AsyncAnnotationAdvisor for bean-style configuration.public AsyncAnnotationAdvisor(Executor executor)
AsyncAnnotationAdvisor for the given task executor.executor - the task executor to use for asynchronous methodspublic void setBeanFactory(BeanFactory beanFactory) throws BeansException
BeanFactory to be used when looking up executors by qualifier.setBeanFactory in interface BeanFactoryAwarebeanFactory - owning BeanFactory (never null).
The bean can immediately call methods on the factory.BeansException - in case of initialization errorsBeanInitializationExceptionpublic void delegateBeanFactory(BeanFactory beanFactory)
public void setTaskExecutor(Executor executor)
public void setAsyncAnnotationType(Class<? extends Annotation> asyncAnnotationType)
The default async annotation type is the Async annotation, as well
as the EJB 3.1 javax.ejb.Asynchronous annotation (if present).
This setter property exists so that developers can provide their own (non-Spring-specific) annotation type to indicate that a method is to be executed asynchronously.
asyncAnnotationType - the desired annotation typepublic Advice getAdvice()
AdvisorgetAdvice in interface AdvisorMethodInterceptor,
BeforeAdvice,
ThrowsAdvice,
AfterReturningAdvicepublic Pointcut getPointcut()
PointcutAdvisorgetPointcut in interface PointcutAdvisorprotected Pointcut buildPointcut(Set<Class<? extends Annotation>> asyncAnnotationTypes)
asyncAnnotationTypes - the async annotation types to introspectnull if none