@Async 注解用的是 Spring Boot 自动生成的 ThreadPoolTaskExecutor 对象
具体一点说, 就是它会去容器里找 TaskExecutor 类型的 Bean, 如果有多个, 他会再去找名为 "taskExecutor", 类型为 Executor 的 Bean.
看源码步骤:
AsyncConfigurer 类 -》AsyncConfigurerSupport-》AsyncExecutionAspectSupport 中构造函数 -》getDefaultExecutor()-》默认获取 Executor, 如果有多个, 默认找名称为 taskExecutor(ThreadPoolTaskExecutor)-》determineAsyncExecutor(没有 qualifier 指定则找默认的 this.defaultExecutor.get())
参考地址:
Spring Boot 教程 (21) - 默认线程池 : https://zhuanlan.zhihu.com/p/85855282
来源: http://www.bubuko.com/infodetail-3518334.html