首页 > 解决方案 > 异步事件侦听器的默认 TaskExecutor 实现

问题描述

我正在使用一个基于注释的事件侦听器,我也将其标记为@Async. (请参阅异步侦听器)。

Spring 使用哪种TaskExecutor实现来服务这些请求?文档内容如下:

默认情况下,在方法上指定@Async 时,使用的执行器是启用异步支持时配置的执行器,即如果您使用XML 或您的AsyncConfigurer 实现(如果有),则为“注释驱动”元素。

问题是我根本没有为此做任何配置,所以我不确定我的AsyncConfigurer实现是从什么开始的。

我的猜测是我们正在处理一个SimpleAsyncTaskExecutor.

标签: springspring-bootexecutorservice

解决方案


我在文档中找到了答案EnableAsync

默认情况下,Spring 将搜索关联的线程池定义:要么是上下文中唯一的 TaskExecutor bean,要么是名为“taskExecutor”的 Executor bean。如果两者都无法解析,则将使用 SimpleAsyncTaskExecutor 来处理异步方法调用。

所以,就是SimpleAsyncTaskExecutor.


推荐阅读