## 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`

Field Summary

Fields inherited from interface org.springframework.core.Ordered
`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

Constructor Summary
`AnnotationAsyncExecutionInterceptor(Executor defaultExecutor)` Create a new `AnnotationAsyncExecutionInterceptor` with the given executor.

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 org.springframework.aop.interceptor.AsyncExecutionInterceptor
`getOrder, invoke`

Methods inherited from class org.springframework.aop.interceptor.AsyncExecutionAspectSupport
`determineAsyncExecutor, setBeanFactory, setExecutor`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### 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()`.

Method Detail

### 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)`