注意事项:
1. 异步方法使用static修饰
2. 异步类没有使用@component注解(或其他注解)导致spring无法扫描到异步类
3. 异步方法不能与异步方法在同一个类中
4. 类中需要使用@autowired或@resource等注解自动注入,不能自己手动new对象
5. 如果使用springboot框架必须在启动类中增加@enableasync注解
6. 在async 方法上标注@transactional是没用的。 在async 方法调用的方法上标注@文明与我同行transactional 有效。
@springbootapplication @enableasync public class application{ public static void main(string[] args) { springapplication.run(application.class, args); } }
我们建了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.print数学频率ln("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-current含有秋的诗句timemillis)+"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"); }}
@restcontroller@requestmapping("/test")public class testcontroller { @autowired private asynctask asynctask; @requestmapping("/async") public string dotask() throws interruptedexception{ lo班组工作总结ng currenttimemillis = system.currenttimemillis(); asynctask.task1(); asynctask.task2(); asynctask.task3(); long currenttimemillis1 = system.currenttimemillis(); return "task任务总耗时:"+(currenttimemillis1-currenttimemillis)+"ms"; }}
启动springboot服务,访问/test/async接口,能看到任务耗时只有1s
查看控制台,发现异步task也成功执行了!
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 08:00:22,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/e6d8994c9caa98080f7c4db4814dd2b9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:关于SpringBoot使用@Async的总结.doc
本文 PDF 下载地址:关于SpringBoot使用@Async的总结.pdf
留言与评论(共有 0 条评论) |