SpringBoot如何使用@Async
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"SpringBoot如何使用@Async",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何使用@Async"
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技网
互联网科技公司的优势
互联网金融 科技金融
互联网 卓越科技
奇酷互联网科技
成都仁贤领冠互联网科技有限公司
开启互联网科技时代小说
宁夏众和广鑫互联网科技有限公司
民营互联网公司国防科技
南博望互联网科技有限公司
长沙互联网科技
科技互联网海报
易企秀互联网科技是做什么的
福建互联网展示科技馆设计
云南互联网科技学费
广西泛欧互联网科技有限公司
亚光科技低轨卫星互联网
互联网对科技影响
互联网科技自媒体灵感
恒生科技互联网指数十大成分股
互联网 科技
左右互联网络科技
恒生科技互联网指数分析
欧洲十大科技互联网公司
中化能源互联网科技招聘
科技类公司包括互联网吗
内蒙古九一互联网科技
张召忠谈中国互联网科技
互联网科技创新创业项目
互联网科技自媒体灵感