spring循环依赖简单图示例

spring循环依赖简单图示例

 

从上图可以看出,只有循环依赖的对象才会放到earlySingletonObjects中(A),不存在的直接从singletonFactories 进入到singletonObjects中(B,C)

singletonObjects :单例对象列表
singletonFactories :单例工厂列表 
earlySingletonObjects: 循环对象依赖列表,对象在创建之后,进行注入过程中,发现产生了循环依赖,那么会将对象放入到这个缓存中,并且从singletonFactories中移除掉