SpringBoot如何使用@Async
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章主要为大家展示了"SpringBoot如何使用@Async",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"SpringBoot如何使用@Async"
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
网络安全的坚守者
单台服务器支持多少人并发
安卓软件开发实例送水购物车
sap服务器怎么申请
sybase打开数据库
影之刃3装备数据库
sql显示当前数据库
我是火影服务器
网络安全手抄报简单字少又漂亮
华为hcna网络技术pdf
理查德西尔斯汉字数据库
层次数据库语言
服务器8268
上海飞机票软件开发
西藏机构养老软件开发
腾讯云服务器开启maf
bde数据库驱动
方舟本地服务器怎么再进去
怎么通过内网ip访问服务器
战争雷霆服务器丢失怎么办
松江市网络安全示范区
变电站网络安全防护系统
网络安全倪光南
从化靠谱的app软件开发
黑龙江网络技术优势
若关系数据库二维表
挖矿ip中转服务器搭建
宝山区信息软件开发厂家批发价
万方数据库论文查重报告
三十四岁学软件开发