@Async 循环依赖

0x01 背景

1、

使用Spring注解@Async可以让方法以异步的方式执行。原理是生成动态代理类交给线程池进行方法执行。

2、

Spring进行Bean管理会有循环依赖的问题。但是Spring已经解决了非构造器的循环依赖。

0x02 问题

但是当上述两种情况同时发生时,循环依赖就会失效。

具体可以参考这篇博客:使用@Async异步注解导致该Bean在循环依赖时启动报BeanCurrentlyInCreationException异常的根本原因分析,以及提供解决方案