由于使用了异步注解导致了启动项目的时候报错,当时只知道注释掉异步注解可以暂时解决问题,但是不清楚具体的原因。
后来查阅了资料,我们需要注意以下两点。
- 直接调用本类方法而非接口方法/代理对象方法会导致 @Async 注解和事务不生效
- 使用了 @Async 注解并且 循环依赖 了,启动时就会报 BeanCurrentlyInCreationException
参考资料:使用@Async异步注解导致该Bean在循环依赖时启动报BeanCurrentlyInCreationException异常的根本原因分析,以及提供解决方案