@EnableAsync @Async
一. 基本介绍
@Async是spring为了方便开发人员进行异步调用的出现的,在方法上加入这个注解,spring会从线程池中获取一个新的线程来执行方法,实现异步调用
@EnableAsync表示开启对异步任务的支持,可以放在springboot的启动类上,也可以放在自定义线程池的配置类上,具体看下文
二.最简单的使用
在springboot项目中,直接在启动类上加上@EnableAsync,然后在service层的方法上对于需要异步调用的方法加上@Async,
那么当controller层调用这个方法的时候,就会在主线程外自动新建线程执行该方法
1.springboot启动类开启异步支持
2.service层的方法加@Async,如果在类上加该注解表示整个类的方法都异步执行,建议加到具体的某个方法上
三.自定义线程池来使用@Async
1.新建一个线程池配置类,@EnableAsync在配置类上加,不用在启动类上加也行,可以配置不同的线程池,用bean的name做区分
2.@Async的使用一样是在service层的方法上加,如果配置了多个线程池,可以用@Async("name"),那么表示线程池的@Bean的name,来指定用哪个线程池处理
假如只配置了一个线程池,直接用@Async就会用自定义的线程池执行
假如配置了多个线程池,用@Async没指定用哪个线程池,会用默认的SimpleAsyncTaskExecutor来处理
假如配置了多个线程池,用@Async("name"),会用指定的线程池处理
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~