springBoot @Async 注解的使用
异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而,异步方法通常会在另外一个线程中,“真实”地执行着。整个过程,不会阻碍调用者的工作。分为不带参数的异步调用;带参数的异步调用;调用返回Future的异步线程
异步方法关键点三步:
- 启动类增加注解
@EnableAsync
- 当前类声明为服务
@Service
- 方法上面添加注解
@Async
使用限制
@Async所修饰的函数不要定义为static类型,这样异步调用不会生效。
默认类内的方法调用不会被aop拦截,也就是说同一个类内的方法调用,@Async不生效
默认情况下异步方法的调用使用的是SimpleAsyncTaskExecutor来执行异步方法调用,实际是每个方法都会起一个新的线程。
举例: