什么是 Spring 循环依赖?

 2022-08-29
原文地址:https://cloud.tencent.com/developer/article/1974802

前言

Spring如何解决的循环依赖,是女同事今天问我的一个问题,其实我很早之前就知道了,但是又有点不知道细节了,那不放大家跟丙丙一起回顾一下。

其实敖丙本人对这类框架源码题还是持一定的怀疑态度的。

如果敖丙作为面试官,可能会问一些诸如“如果注入的属性为null,你会从哪几个方向去排查”这些场景题。

那么既然写了这篇文章,闲话少说,发车看看Spring是如何解决的循环依赖,以及带大家看清循环依赖的本质是什么。

正文

通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景。

比如几个Bean之间的互相引用:

202208292233403391.png

甚至自己“循环”依赖自己:

202208292233419992.png

202208292233434923.png

202208292233457264.png

202208292233484085.png

202208292233509376.png

202208292233537377.png

202208292233564748.png

202208292233592029.png

2022082922340194710.png

2022082922340374911.png

2022082922340771812.png

2022082922340994813.png