SpringBoot EnableAsync无效 Async注解不异步

Posted mr_raptor

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot EnableAsync无效 Async注解不异步相关的知识,希望对你有一定的参考价值。

1.没有在@SpringBootApplication启动类当中添加注解@EnableAsync注解。
2.异步方法使用注解@Async的返回值只能为void或者Future。
3.没有走Spring的代理类。因为@Transactional和@Async注解的实现都是基于Spring的AOP,而AOP的实现是基于动态代理模式实现的。那么注解失效的原因就很明显了,有可能因为调用方法的是对象本身而不是代理对象,因为没有经过Spring容器。

4. 如果你的异步方法所在类被Shiro注解过,需要在Autowired后面添加@Lazy注解。

原因可能是,shiro的框架启动的比较早,在Spring未启动前先将异步执行类加载到了容器里,导致该类所有的Spring注解不再生效。

 

 

以上是关于SpringBoot EnableAsync无效 Async注解不异步的主要内容,如果未能解决你的问题,请参考以下文章

类似于Java-SpringBoot @EnableAsync @Async注释的Python3.5异步执行

springboot学习入门简易版七---springboot2.0使用@Async异步执行方法(17)

线程池,springboot工程中的异步

springboot2.0 异步操作,@Async失效,无法进入异步

spring中@Async注解的原理和使用

SpringBoot