@ -67,6 +67,7 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAd
@@ -67,6 +67,7 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAd
* The default name of the { @link TaskExecutor } bean to pick up : "taskExecutor" .
* < p > Note that the initial lookup happens by type ; this is just the fallback
* in case of multiple executor beans found in the context .
* @since 4 . 2
* /
public static final String DEFAULT_TASK_EXECUTOR_BEAN_NAME = "taskExecutor" ;
@ -130,17 +131,16 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAd
@@ -130,17 +131,16 @@ public class AsyncAnnotationBeanPostProcessor extends AbstractBeanFactoryAwareAd
}
catch ( NoUniqueBeanDefinitionException ex ) {
try {
executorToUse = beanFactory . getBean ( DEFAULT_TASK_EXECUTOR_BEAN_NAME , Task Executor. class ) ;
executorToUse = beanFactory . getBean ( DEFAULT_TASK_EXECUTOR_BEAN_NAME , Executor . class ) ;
}
catch ( NoSuchBeanDefinitionException ex2 ) {
throw new IllegalStateException ( "More than one TaskExecutor bean exists within the context, " +
"and none is named 'taskExecutor'. Mark one of them as primary or name it " +
"'taskExecutor' (possibly as an alias); or specify the AsyncConfigurer interface " +
"and implement getAsyncExecutor() accordingly." , ex ) ;
logger . info ( "More than one TaskExecutor bean found within the context, and none is " +
"named 'taskExecutor'. Mark one of them as primary or name it 'taskExecutor' " +
"(possibly as an alias) in order to use it for async annotation processing." ) ;
}
}
catch ( NoSuchBeanDefinitionException ex ) {
logger . debug ( "Could not find default TaskExecutor bean" , ex ) ;
logger . info ( "No TaskExecutor bean found for async annotation processing." ) ;
// Giving up -> falling back to default executor within the advisor...
}
}