SpringBoot如何使用@Async
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要为大家展示了"SpringBoot如何使用@Async",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何使用@Async"
千家信息网最后更新 2025年11月07日SpringBoot如何使用@Async
这篇文章主要为大家展示了"SpringBoot如何使用@Async",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何使用@Async"这篇文章吧。
SpringBoot使用@Async总结
注意事项:
如下方式会使@Async失效
1. 异步方法使用static修饰
2. 异步类没有使用@Component注解(或其他注解)导致spring无法扫描到异步类
3. 异步方法不能与异步方法在同一个类中
4. 类中需要使用@Autowired或@Resource等注解自动注入,不能自己手动new对象
5. 如果使用SpringBoot框架必须在启动类中增加@EnableAsync注解
6. 在Async 方法上标注@Transactional是没用的。 在Async 方法调用的方法上标注@Transactional 有效。
SpringBoot实现异步(Async)接口
1. 启动类引入@EnableAsync注解
@SpringBootApplication @EnableAsync public class Application{ public static void main(String[] args) { SpringApplication.run(Application.class, args); } }2. 建立异步任务类
我们建了3个异步任务,分别延迟1s,2s,3s
@Componentpublic class AsyncTask { @Async public void task1() throws InterruptedException{ long currentTimeMillis = System.currentTimeMillis(); Thread.sleep(1000); long currentTimeMillis1 = System.currentTimeMillis(); System.out.println("task1任务耗时:"+(currentTimeMillis1-currentTimeMillis)+"ms"); } @Async public void task2() throws InterruptedException{ long currentTimeMillis = System.currentTimeMillis(); Thread.sleep(2000); long currentTimeMillis1 = System.currentTimeMillis(); System.out.println("task2任务耗时:"+(currentTimeMillis1-currentTimeMillis)+"ms"); } @Async public void task3() throws InterruptedException{ long currentTimeMillis = System.currentTimeMillis(); Thread.sleep(3000); long currentTimeMillis1 = System.currentTimeMillis(); System.out.println("task3任务耗时:"+(currentTimeMillis1-currentTimeMillis)+"ms"); }}3. 建立测试接口
@RestController@RequestMapping("/test")public class TestController { @Autowired private AsyncTask asyncTask; @RequestMapping("/async") public String doTask() throws InterruptedException{ long currentTimeMillis = System.currentTimeMillis(); asyncTask.task1(); asyncTask.task2(); asyncTask.task3(); long currentTimeMillis1 = System.currentTimeMillis(); return "task任务总耗时:"+(currentTimeMillis1-currentTimeMillis)+"ms"; }}启动SpringBoot服务,访问/test/async接口,能看到任务耗时只有1s

查看控制台,发现异步task也成功执行了!

以上是"SpringBoot如何使用@Async"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
任务
方法
注解
内容
接口
篇文章
学习
帮助
有效
成功
不能自己
事项
只有
对象
手动
控制台
方式
易懂
更多
条理
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
用华为云服务器没买主机安全
购买云服务器费用怎么记账
软件开发企业收入服务费
网络安全攻防对抗手段
软件开发职位面试问题
pb 数据库条件查询语句
农行软件开发中心管理待遇
js抢购软件开发原理
扫爆 服务器
91短视频一直卡在连接服务器
问答数据库怎么弄
3d服务器速度
软件企业软件开发环境证明
支持excel数据库
湖南省电脑软件开发培训
网络安全三审制
csgo服务器给管理员指令
数据库系统第六版答案13
云服务器跨云怎么弄
上海网络安全审计系统咨询哪家好
山西电力软件开发
如何处理数据库文本换行
公安 软件开发
航空公司软件开发工资待遇
软件开发人员前景如何
91短视频一直卡在连接服务器
战地五服务器id
河北超频服务器供应
网络安全鑫昆
网络安全攻防理念