了解Spring中循环依赖流程,绝杀面试官!

请阐述下你对spring循环依赖的理解?真的是......秃头是有原因的......

下面逐层深入了解,揭开它的神秘面纱!

一、什么是循环依赖

二、相关概念说明

  • spring中的一、二、三级缓存
#一级缓存:存储所有创建完整的bean
private final Map singletonObjects = new ConcurrentHashMap(256);
#二级缓存:存储完成实例化后的bean(createBeanInstance方法执行结束,但还未执行populateBean-属性注入等方法)
private final Map earlySingletonObjects = new ConcurrentHashMap(16);
#三级缓存:对象工厂,通过ObjectFactory.getObject()方法,获取到类似于二级缓存中存储的对象
private final Map