@EnableAsync
注解啟用了 Spring 異步方法執(zhí)行功能齐板,在 Spring Framework API 中有詳細(xì)介紹虽界。
@EnableAsync
默認(rèn)啟動(dòng)流程:
1 搜索關(guān)聯(lián)的線程池定義:上下文中唯一的 TaskExecutor
實(shí)例屏箍,或一個(gè)名為 taskExecutor
的 java.util.concurrent.Executor
實(shí)例;
2 如果以上都沒(méi)找到篙耗,則會(huì)使用 SimpleAsyncTaskExecutor
處理異步方法調(diào)用溉跃。
注意:具有 void
返回類型的帶注釋方法不能將任何異常發(fā)送回調(diào)用者,默認(rèn)情況下此類未捕獲異常只會(huì)被記錄日志十减。
定制 @EnableAsync
啟動(dòng)行為:
1 實(shí)現(xiàn) AsyncConfigurer
接口
2 實(shí)現(xiàn) getAsyncExecutor()
方法自定義 java.util.concurrent.Executor
3 實(shí)現(xiàn) getAsyncUncaughtExceptionHandler()
方法自定義 AsyncUncaughtExceptionHandler
示例:修改 AsyncConfig
配置類實(shí)現(xiàn)