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)