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

Constructors
Constructor and Description
`AnnotationAsyncExecutionInterceptor(Executor defaultExecutor)` Create a new `AnnotationAsyncExecutionInterceptor` with the given executor.

### Method Summary

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