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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值