public abstract class AsyncExecutionAspectSupport extends Object implements BeanFactoryAware
AnnotationAsyncExecutionInterceptor
or org.springframework.scheduling.aspectj.AnnotationAsyncExecutionAspect
.
Provides support for executor qualification on a method-by-method basis.
AsyncExecutionAspectSupport
objects must be constructed with a default Executor
, but each individual method may further qualify a specific Executor
bean to be used when executing it, e.g. through an annotation attribute.
Constructor and Description |
---|
AsyncExecutionAspectSupport(Executor defaultExecutor)
Create a new
AsyncExecutionAspectSupport , using the provided default
executor unless individual async methods indicate via qualifier that a more
specific executor should be used. |
Modifier and Type | Method and Description |
---|---|
protected AsyncTaskExecutor |
determineAsyncExecutor(Method method)
Determine the specific executor to use when executing the given method.
|
protected abstract String |
getExecutorQualifier(Method method)
Return the qualifier or bean name of the executor to be used when executing the
given async method, typically specified in the form of an annotation attribute.
|
void |
setBeanFactory(BeanFactory beanFactory)
Set the
BeanFactory to be used when looking up executors by qualifier. |
void |
setExecutor(Executor defaultExecutor)
Supply the executor to be used when executing async methods.
|
public AsyncExecutionAspectSupport(Executor defaultExecutor)
AsyncExecutionAspectSupport
, using the provided default
executor unless individual async methods indicate via qualifier that a more
specific executor should be used.defaultExecutor
- the executor to use when executing asynchronous methodspublic void setExecutor(Executor defaultExecutor)
defaultExecutor
- the Executor
(typically a Spring AsyncTaskExecutor
or ExecutorService
) to delegate to
unless a more specific executor has been requested via a qualifier on the async
method, in which case the executor will be looked up at invocation time against the
enclosing bean factory.getExecutorQualifier(java.lang.reflect.Method)
,
setBeanFactory(BeanFactory)
public void setBeanFactory(BeanFactory beanFactory) throws BeansException
BeanFactory
to be used when looking up executors by qualifier.setBeanFactory
in interface BeanFactoryAware
beanFactory
- owning BeanFactory (never null
).
The bean can immediately call methods on the factory.BeansException
- in case of initialization errorsBeanInitializationException
protected AsyncTaskExecutor determineAsyncExecutor(Method method)
null
)protected abstract String getExecutorQualifier(Method method)
null
indicates that no specific executor has
been specified and that the default executor
should be used.method
- the method to inspect for executor qualifier metadatanull
determineAsyncExecutor(Method)