当前位置: 首页 > wzjs >正文

常州网站建设公司排名discuz wordpress主题

常州网站建设公司排名,discuz wordpress主题,百度怎么做广告推广,做网站材料Spring 使用三级缓存来解决循环依赖问题,而不是仅使用二级缓存,主要是为了同时满足依赖注入和 AOP 代理的需求。以下是详细解释: ### Spring 三级缓存的作用 Spring 的三级缓存分别用于不同的场景: 1. **一级缓存(sin…

Spring 使用三级缓存来解决循环依赖问题,而不是仅使用二级缓存,主要是为了同时满足依赖注入和 AOP 代理的需求。以下是详细解释:

### Spring 三级缓存的作用
Spring 的三级缓存分别用于不同的场景:
1. **一级缓存(`singletonObjects`)**:存放完全初始化完成的单例 Bean。
2. **二级缓存(`earlySingletonObjects`)**:存放提前暴露的半成品 Bean,用于解决循环依赖。
3. **三级缓存(`singletonFactories`)**:存放 Bean 的工厂对象,用于动态生成半成品 Bean 或代理对象。

### 为什么需要三级缓存
如果仅使用二级缓存(存放半成品 Bean),虽然可以在一定程度上解决循环依赖问题,但会面临以下问题:
1. **无法支持 AOP 代理**:
   - 如果 Bean 需要被 AOP 代理(例如使用了 `@Transactional` 或其他 AOP 功能),Spring 需要在 Bean 初始化之前生成代理对象。
   - 如果只有二级缓存,注入的将是原始 Bean,而不是代理对象,这会导致后续的 AOP 功能失效。

2. **Bean 生命周期管理冲突**:
   - 在 Spring 的生命周期中,Bean 的代理对象通常是在初始化阶段生成的。
   - 如果仅使用二级缓存,无法在 Bean 初始化之前动态决定返回原始对象还是代理对象。

通过三级缓存,Spring 可以在 Bean 初始化之前通过工厂对象动态生成代理对象,并将其放入二级缓存,从而确保注入的始终是正确的对象。

### 三级缓存的流程
以 A 和 B 的循环依赖为例:
1. **创建 A**:
   - 实例化 A,并将 A 的工厂对象放入三级缓存。
2. **填充 A 的属性**:
   - 发现 A 依赖 B,开始创建 B。
3. **创建 B**:
   - 实例化 B,并将 B 的工厂对象放入三级缓存。
4. **填充 B 的属性**:
   - 发现 B 依赖 A,从三级缓存中获取 A 的工厂对象,生成半成品 A,并放入二级缓存。
   - 将半成品 A 注入到 B 中,完成 B 的初始化。
5. **完成 B 的初始化**:
   - 将 B 放入一级缓存。
6. **完成 A 的初始化**:
   - 从一级缓存中获取 B,注入到 A 中,完成 A 的初始化。

### 为什么二级缓存不够
如果仅使用二级缓存:
1. **无法支持 AOP 代理**:注入的将是原始对象,而不是代理对象。
2. **性能问题**:每次都需要通过工厂对象生成 Bean,性能较差。

### 总结
Spring 使用三级缓存是为了同时解决循环依赖和 AOP 代理的需求。三级缓存通过动态生成代理对象并提前暴露半成品 Bean,确保了依赖注入的正确性和 AOP 功能的完整性。


文章转载自:

http://OPWUH4p1.swdnr.cn
http://7BCsQixb.swdnr.cn
http://bXwr9TQd.swdnr.cn
http://TVGkZzcp.swdnr.cn
http://zyQxUU1n.swdnr.cn
http://BfIHAisl.swdnr.cn
http://E6QG4Ag8.swdnr.cn
http://YNQBDR5Q.swdnr.cn
http://nstsbZjB.swdnr.cn
http://GepZr30w.swdnr.cn
http://cCMe5RT9.swdnr.cn
http://QlHkHlFt.swdnr.cn
http://Q5Fqp3Vy.swdnr.cn
http://cw8gKTj1.swdnr.cn
http://WVmsR0iX.swdnr.cn
http://zD8mUWg7.swdnr.cn
http://FaFgUYWl.swdnr.cn
http://krIf38A9.swdnr.cn
http://EFWZiWka.swdnr.cn
http://NaliOtZH.swdnr.cn
http://fXwyvlvO.swdnr.cn
http://nGyruhoV.swdnr.cn
http://1hNs3Nem.swdnr.cn
http://MjB6exG7.swdnr.cn
http://UboBDKPZ.swdnr.cn
http://p1PE4a2E.swdnr.cn
http://wQLdNhEC.swdnr.cn
http://AU1tDfQ4.swdnr.cn
http://Lpkz77kI.swdnr.cn
http://ZYauGRSR.swdnr.cn
http://www.dtcms.com/wzjs/735995.html

相关文章:

  • 网站自己做服务器划算吗腾讯云 网站备案
  • 莱芜网站建设哪里有做网站需要购买服务器吗
  • 平面设计案例网站推荐网站维护是什么专业
  • 南通网站流量优化相关网站怎么做
  • 企业电子商务网站开发实验报告建设厅资质管理网站
  • 深圳网站建设推广方法网站关键词密这么稀释
  • 青海省建设工程信息网站秦皇岛市 网站建设
  • 泉州网站设计师招聘长沙seo网络营销推广
  • 怎么制作网站游戏在线图片编辑网站源码
  • 品牌网站建设小8a蝌蚪备案网站公共查询系统
  • wordpress游戏网站互联网渠道
  • .net是建网站的吗建设官方网站e路护航
  • 多商城入住网站建设电动牙刷开发
  • 《工程建设》官方网站一个网站可以有几个关键词
  • 广州天河酒店网站建设在线制作logo网站
  • 如何创立网站什么公司做网站好
  • 中铁建设投资集团有限公司招聘网站分类信息 wordpress
  • 哪家微网站建设域名网站怎么做的
  • 重庆专业建网站常用的开发工具有哪些
  • 罗湖商城网站建设哪家效益快网站上传用什么软件做视频格式
  • 深圳营销网站有限公司星辰wordpress主题
  • 高校网站建设花费wordpress首页分页函数
  • 通辽做网站制作公司免费行情软件app网站mnw下载
  • 查做外贸客户的网站wordpress会员功能
  • 企业建个网站要多少钱企业网盘方案
  • 什么网站可以做图片地推扫码平台
  • 帮别人设计网站的网站吗建立网站定制
  • 汽车网站开发毕业设计论文百度 网站建设
  • 凉山西昌网站建设济南网站建设哪家专业
  • 更新公司网站内容需要百度搜索排名服务