首页 > 作文

关于SpringBoot使用@Async的总结

更新时间:2023-04-04 08:00:24 阅读: 评论:0

目录
springboot使用@async总结如下方式会使@async失效springboot实现异步(async)接口1. 启动类引入@enableasync注解2. 建立异步任务类3. 建立测试接口

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.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");    }}

3. 建立测试接口

@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 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图