我是靠谱客的博主 糊涂小蘑菇,最近开发中收集的这篇文章主要介绍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解决循环依赖所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部