org.springframework.scheduling.annotation
Class AnnotationAsyncExecutionInterceptor
java.lang.Object
org.springframework.aop.interceptor.AsyncExecutionAspectSupport
org.springframework.aop.interceptor.AsyncExecutionInterceptor
org.springframework.scheduling.annotation.AnnotationAsyncExecutionInterceptor
- All Implemented Interfaces:
- Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, Ordered
public class AnnotationAsyncExecutionInterceptor
- extends AsyncExecutionInterceptor
Specialization of AsyncExecutionInterceptor
that delegates method execution to
an Executor
based on the Async
annotation. Specifically designed to
support use of Async.value()
executor qualification mechanism introduced in
Spring 3.1.2. Supports detecting qualifier metadata via @Async
at the method or
declaring class level. See getExecutorQualifier(Method)
for details.
- Since:
- 3.1.2
- Author:
- Chris Beams
- See Also:
Async
,
AsyncAnnotationAdvisor
Method Summary |
protected String |
getExecutorQualifier(Method method)
Return the qualifier or bean name of the executor to be used when executing the
given method, specified via Async.value() at the method or declaring
class level. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AnnotationAsyncExecutionInterceptor
public AnnotationAsyncExecutionInterceptor(Executor defaultExecutor)
- Create a new
AnnotationAsyncExecutionInterceptor
with the given executor.
- Parameters:
defaultExecutor
- the executor to be used by default if no more specific
executor has been qualified at the method level using Async.value()
.
getExecutorQualifier
protected String getExecutorQualifier(Method method)
- Return the qualifier or bean name of the executor to be used when executing the
given method, specified via
Async.value()
at the method or declaring
class level. If @Async
is specified at both the method and class level, the
method's #value
takes precedence (even if empty string, indicating that
the default executor should be used preferentially).
- Overrides:
getExecutorQualifier
in class AsyncExecutionInterceptor
- Parameters:
method
- the method to inspect for executor qualifier metadata
- Returns:
- the qualifier if specified, otherwise empty string indicating that the
default executor should be used
- See Also:
AsyncExecutionAspectSupport.determineAsyncExecutor(Method)