public abstract class AsyncExecutionAspectSupport extends Object implements org.springframework.beans.factory.BeanFactoryAware
org.springframework.scheduling.annotation.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.
| Modifier and Type | Field and Description | 
|---|---|
| static String | DEFAULT_TASK_EXECUTOR_BEAN_NAMEThe default name of the  TaskExecutorbean to pick up: "taskExecutor". | 
| protected Log | logger | 
| Constructor and Description | 
|---|
| AsyncExecutionAspectSupport(Executor defaultExecutor)Create a new instance with a default  AsyncUncaughtExceptionHandler. | 
| AsyncExecutionAspectSupport(Executor defaultExecutor,
                           AsyncUncaughtExceptionHandler exceptionHandler)Create a new  AsyncExecutionAspectSupportwith the given exception handler. | 
| Modifier and Type | Method and Description | 
|---|---|
| void | configure(Supplier<Executor> defaultExecutor,
         Supplier<AsyncUncaughtExceptionHandler> exceptionHandler)Configure this aspect with the given executor and exception handler suppliers,
 applying the corresponding default if a supplier is not resolvable. | 
| protected org.springframework.core.task.AsyncTaskExecutor | determineAsyncExecutor(Method method)Determine the specific executor to use when executing the given method. | 
| protected Object | doSubmit(Callable<Object> task,
        org.springframework.core.task.AsyncTaskExecutor executor,
        Class<?> returnType)Delegate for actually executing the given task with the chosen executor. | 
| protected Executor | findQualifiedExecutor(org.springframework.beans.factory.BeanFactory beanFactory,
                     String qualifier)Retrieve a target executor for the given qualifier. | 
| protected Executor | getDefaultExecutor(org.springframework.beans.factory.BeanFactory beanFactory)Retrieve or build a default executor for this advice instance. | 
| 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. | 
| protected void | handleError(Throwable ex,
           Method method,
           Object... params)Handles a fatal error thrown while asynchronously invoking the specified
  Method. | 
| void | setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)Set the  BeanFactoryto be used when looking up executors by qualifier
 or when relying on the default executor lookup algorithm. | 
| void | setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler)Supply the  AsyncUncaughtExceptionHandlerto use to handle exceptions
 thrown by invoking asynchronous methods with avoidreturn type. | 
| void | setExecutor(Executor defaultExecutor)Supply the executor to be used when executing async methods. | 
public static final String DEFAULT_TASK_EXECUTOR_BEAN_NAME
TaskExecutor bean to pick up: "taskExecutor".
 Note that the initial lookup happens by type; this is just the fallback in case of multiple executor beans found in the context.
protected final Log logger
public AsyncExecutionAspectSupport(@Nullable
                                   Executor defaultExecutor)
AsyncUncaughtExceptionHandler.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 factorypublic AsyncExecutionAspectSupport(@Nullable
                                   Executor defaultExecutor,
                                   AsyncUncaughtExceptionHandler exceptionHandler)
AsyncExecutionAspectSupport with the given exception handler.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 factoryexceptionHandler - the AsyncUncaughtExceptionHandler to usepublic void configure(@Nullable
                      Supplier<Executor> defaultExecutor,
                      @Nullable
                      Supplier<AsyncUncaughtExceptionHandler> exceptionHandler)
public 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 factorygetExecutorQualifier(Method), 
setBeanFactory(BeanFactory), 
getDefaultExecutor(BeanFactory)public void setExceptionHandler(AsyncUncaughtExceptionHandler exceptionHandler)
AsyncUncaughtExceptionHandler to use to handle exceptions
 thrown by invoking asynchronous methods with a void return type.public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory)
BeanFactory to be used when looking up executors by qualifier
 or when relying on the default executor lookup algorithm.setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAwarefindQualifiedExecutor(BeanFactory, String), 
getDefaultExecutor(BeanFactory)@Nullable protected org.springframework.core.task.AsyncTaskExecutor determineAsyncExecutor(Method method)
AsyncListenableTaskExecutor implementation.null, but just if no default executor is available)@Nullable 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 metadatanulldetermineAsyncExecutor(Method), 
findQualifiedExecutor(BeanFactory, String)@Nullable protected Executor findQualifiedExecutor(@Nullable org.springframework.beans.factory.BeanFactory beanFactory, String qualifier)
qualifier - the qualifier to resolvenull if none availablegetExecutorQualifier(Method)@Nullable protected Executor getDefaultExecutor(@Nullable org.springframework.beans.factory.BeanFactory beanFactory)
The default implementation searches for a unique TaskExecutor bean
 in the context, or for an Executor bean named "taskExecutor" otherwise.
 If neither of the two is resolvable, this implementation will return null.
beanFactory - the BeanFactory to use for a default executor lookupnull if none availablefindQualifiedExecutor(BeanFactory, String), 
DEFAULT_TASK_EXECUTOR_BEAN_NAME@Nullable protected Object doSubmit(Callable<Object> task, org.springframework.core.task.AsyncTaskExecutor executor, Class<?> returnType)
protected void handleError(Throwable ex, Method method, Object... params) throws Exception
Method.
 If the return type of the method is a Future object, the original
 exception can be propagated by just throwing it at the higher level. However,
 for all other cases, the exception will not be transmitted back to the client.
 In that later case, the current AsyncUncaughtExceptionHandler will be
 used to manage such exception.
ex - the exception to handlemethod - the method that was invokedparams - the parameters used to invoke the methodException