异步
图
基于SpringBoot的异步处理,减少客户端的等待时间,快速响应主要数据,是未引入队列等插件前的业务优化方案,最简单的示例就是日志的记录场景,必然是一个异步操作,不能对主要业务产生影响

何为异步

需要区分的是同步就是顺序执行,等一次调用返回结果才会执行下一次调用,如果调用出现迟缓,程序也会出现迟缓

异步则只是发送了调用的命令,然后不再等待调用结果继续向下执行,减少迟缓

异步(注解方式)

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作

在spring3后提供注解支持,内置了@Async注解完成异步任务

  • @EnableAsync: 用在主配置类上,支持异步
  • @Async:放在需要异步执行的方法上
@SpringBootApplication
@EnableAsync
public class AsyncApplication {

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

}
@Async
public void say() {
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("异步执行");
}

在测试时发现并没有在主配置类上添加支持也可以