Spring是在Ioc阶段用三级缓存解决的循环依赖问题吗
时间: 2023-03-04 11:01:36 浏览: 102
针对大厂面试,模仿Spring写的简易版IOC小框架,完美解释三级缓存解决属性注入循环依赖的问题
5星 · 资源好评率100%
是的,Spring框架中的IoC容器在处理循环依赖问题时,使用了三级缓存机制来解决。具体而言,当Bean A和Bean B相互依赖时,Spring IoC容器会在创建Bean A时将其放入一级缓存中,然后创建Bean B时发现它依赖于Bean A,于是将Bean B放入二级缓存中。接着,Spring会尝试完成Bean A的创建,并在创建过程中发现需要使用到Bean B,于是从二级缓存中获取Bean B。然后,Spring会完成Bean A的创建,并将其放入三级缓存中,同时把二级缓存中的Bean B注入到Bean A中。最后,Spring再从三级缓存中获取Bean A并返回给调用方。这样,Spring就成功地解决了循环依赖问题。
阅读全文