您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页SpringBoot如何开启异步编程

SpringBoot如何开启异步编程

来源:二三娱乐

一、什么是异步?

现在我们假设有一个接口方法,里面又调用了三个子方法,分别是A,B,C。先从A执行,执行完毕再执行B,B执行完最后执行C。这也是我们代码最常见的执行方式。ABC顺序执行,其中一个出问题了,如果抛出了异常,后续则不再执行。这中方式就是同步执行。

那么异步执行是什么样子的呢?

假设B方法改为异步,那么A方法执行完毕,执行B方法。此时不需要等B方法执行完毕,代码会直接执行C方法。也就是B方法不再影响C方法的执行,这里B方法就是异步执行。


二、为什么要使用异步编程?

异步方法的作用也很明显,假设我们上面的接口方法是一个用户注册方法,A方法注册成功,B方法是增加积分,C方法增加权限。那么A方法执行成功后,我们就可以给用户添加权限了。至于增加积分,完全可以异步处理,这样注册的效率就会更高,提高用户体验。实际上的业务场景还有很多,通常需要异步的都是执行比较慢,又对我们串行执行的业务逻辑没有影响,为了提高代码效率,我们就需要异步执行。


三、SpringBoot开启异步编程

接下来,我们就以SpringBoot项目为例,来看下如何使用异步编程。

第一步,通常来说一个新功能都是从引入包开始,因为这个功能本身是Spring 3提供的功能,所以我们可以直接使用。首先在主启动类上通过注解@EnableAsync开启异步功能。

@SpringBootApplication
@EnableAsync
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
复制代码

第二步,在需要异步的方法上,添加注解@Async,这样就可以了。

@Async
public void testAsync() {
    xxxx;
}

复制代码

是不是非常简单?使用当然非常简单了,但是这里面有许多坑和业务场景,我们就来一一说明。


1、有返回值的异步方法

@RestController
public class TestController {
    public Result testAsync(){
        service.testA

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务