spring ioc解决循环依赖为什么需要用三级缓存
创始人
2024-03-25 03:14:46
0

spring ioc解决循环依赖为什么需要用三级缓存

  • aop动态代理
  • 循环依赖的处理机制
  • 为什么需要三级缓存

aop动态代理

是因为aop,而aop的核心是动态代理,
简单理解就是我们需要横切逻辑增强的对象,
实际上是生成一个代理对象操作被增强对象,而不是被代理对象本身。

有需要的可以看下:
spring框架源码一、什么是aop

所以A依赖B,如果B被aop代理,那么实际依赖的不是B对象,而是B的代理对象,

循环依赖的处理机制

在spring ioc的循环依赖问题
我们说过循环依赖的处理机制:

A和B互相依赖,

假如先去创建A,
A实例化后先把自己放入三级缓存,目的是为了提前暴露,
然后发现依赖B,
接着创建B,B依赖A,
B会去三级缓存中找A,使用并将A放入二级缓存,
B创建完后会把自己放入一级缓存,
A使用一级缓存中的B。

为什么需要三级缓存

将A从三级缓存放入二级缓存这里,会对A进行一些特殊处理,
具体来说就是如果A被aop代理了,就需要创建代理对象放入二级缓存,
三级缓存的作用就是在这一步,

为什么不一开始就创建代理对象呢?
因为这与设计原则相悖,
spring的设计原则是在bean初始化的最后阶段创建代理对象,
三级缓存是为了在被代理的bean被引用时提前创建代理对象,
而没有被引用的bean则还是在初始化的最后阶段创建代理对象。

相关内容

热门资讯

灿辉·晶萃173美学样板间品鉴... (转自:上海楼市情报)7月2日,徐泾一场美学样板间的媒体品鉴会,揭开了大虹桥高端人居新纪元。在无数期...
2025年第二批IPO现场检查...   来源:投行最前线  7月3日,中国证券业协会公布了2025年第二批IPO现场检查名单,本次共抽查...
时政微观察丨青年大有可为   7月2日,中华全国青年联合会第十四届委员会全体会议、中华全国学生联合会第二十八次代表大会隆重开幕...
人乐退:公司股票将在7月4日被... 上证报中国证券网讯(记者骆民)人乐退公告,公司股票已被深圳证券交易所决定终止上市。公司股票于2025...
天航一客机滑行时发出巨响,乘客... 7月2日,有网友发视频称,从呼和浩特飞往乌海的天津航空 GS7833次航班飞机在滑行时发出一声巨大声...
持牌消金转型深水区:上半年19... 中经记者 郑瑜 北京报道在宏观经济持续推动消费复苏的背景下,消费金融被认为是金融服务与实体消费的关键...
黄河再添新大桥!宁夏中卫黑山峡... 原标题:黄河再添新大桥!宁夏中卫黑山峡黄河大桥主桥顺利合龙来源:人民日报客户端7月3日,随着最后一块...
化解跨国企业数据本地化痛点 辉... 中经记者 谭伦 上海报道随着AI与云技术的演进融合,在全球企业加速数字化转型的浪潮中,数据基础设施建...
润欣科技:截至6月30日公司的... 证券日报网讯润欣科技7月3日在互动平台回答投资者提问时表示,截至6月30日,公司的股东人数是83,4...
美元人民币盘中上涨102点 07月03日消息,美元人民币盘中上涨102点,涨幅0.14%,截止20:48,报7.1724。