我是靠谱客的博主 糊涂小蘑菇,这篇文章主要介绍spring解决循环依赖,现在分享给大家,希望可以做个参考。

spring怎么解决的循环依赖问题?
三级缓存

一级缓存:
/** 保存所有的singletonBean的实例 */
private final Map<String, Object> singletonObjects
 = new ConcurrentHashMap<String, Object>(64);

二级缓存:
/** 保存所有早期创建的Bean对象,这个Bean还没有完成依赖注入 */
private final Map<String, Object> earlySingletonObjects
 = new HashMap<String, Object>(16);
三级缓存:
/** singletonBean的生产工厂*/
private final Map<String, ObjectFactory<?>> singletonFactories
 = new HashMap<String, ObjectFactory<?>>(16);
 
/** 保存所有已经完成初始化的Bean的名字(name) */
private final Set<String> registeredSingletons 
= new LinkedHashSet<String>(64);
 
/** 标识指定name的Bean对象是否处于创建状态  这个状态非常重要 */
private final Set<String> singletonsCurrentlyInCreation =
    Collections.newSetFromMap(new ConcurrentHashMap<String, Boolean>(16));

在这里插入图片描述

在这里插入图片描述

最后

以上就是糊涂小蘑菇最近收集整理的关于spring解决循环依赖的全部内容,更多相关spring解决循环依赖内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(125)

评论列表共有 0 条评论

立即
投稿
返回
顶部