Spring循环依赖三级缓存 - 图1

    1. ABC,3个bean互相依赖的情况;
    2. 自我依赖,自己依赖自己;

    spring框架解决bean循环依赖的机制是用到缓存。

    介绍:
    把所有实例化的bean都放入到缓存,把完成实例化,但没有赋值的bean的打上标记;等bean全部实例化以后,再重新扫描一篇容器,将没有完全赋值的bean,再赋值;
    循环依赖一定要用二级缓存吗?不一定;二级缓存只是解决循环依赖问题;而spring设计了三级缓存,是代理缓存bean,三级缓存是为了解决代理bean的循环依赖问题;
    一二三级缓存,是根据获取对象 的顺序来完成的;