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

网站建设整体策划问信息奥赛题怎么做 去哪个网站

网站建设整体策划,问信息奥赛题怎么做 去哪个网站,wordpress 发送邮件 名称,科技未来网站建设假设在spring中bean A依赖bean B,bean B依赖bean A,这种循环依赖的情况通常会使用三级缓存的方式进行处理。 什么是三级缓存 一级缓存:存储的是已经实例化完成的bean实例。 二级缓存:存放在这里的是提前暴露的bean半成品。若Bea…

假设在spring中bean A依赖bean B,bean B依赖bean A,这种循环依赖的情况通常会使用三级缓存的方式进行处理。

什么是三级缓存

一级缓存:存储的是已经实例化完成的bean实例。
二级缓存:存放在这里的是提前暴露的bean半成品。若Bean需AOP代理(如@Async、@Transactional),三级缓存的ObjectFactory会提前生成代理对象并存入二级缓存,避免重复创建代理。
三级缓存:存放的是bean的ObjectFactory对象,通过ObjectFactory.getObject()可以获取具体的bean实例。

如何进行循环依赖处理

spring会按以下步骤进行处理:

  1. spring调用构造化方法实例化bean A,同时把A的ObjectFactory存入三级缓存。
  2. 发现A依赖bean B后,会先在一级缓存查询是否已经有bean B的实例,如果没有会在二级缓存查询,如还是没有会在三级缓存查询B的ObjectFactory。如三级缓存都没有,则bean A会暂停注入属性,先去实例化bean B。
  3. B实例化后,同样会把ObjectFactory存入三级缓存。
  4. B在注入属性时发现依赖bean A,此时B同样会从一级缓存到三级缓存依次查询。查询到实例后进行属性注入。
  5. bean B属性注入完成后,bean A恢复注入流程,从三级缓存中查询对应的ObjectFactory。
    循环依赖处理过程如下图所示:
Container A B Cache ObjectFactory 1. 实例化A 2. 注册A的ObjectFactory到三级缓存 3. 开始注入属性(发现需要B) 4. 实例化B 5. 注册B的ObjectFactory到三级缓存 6. 开始注入属性(发现需要A) 7. 请求A的引用 8. 调用getObject() 9. 执行getEarlyBeanReference() 10. 返回原始对象或代理 11. 返回A的早期引用 12. 完成B的初始化 13. 完成A的初始化 Container A B Cache ObjectFactory
http://www.yayakq.cn/news/428990/

相关文章:

  • 韶关市网站建设深圳建筑工程信息网
  • 网站建设 比选福州网站建设联系时事在
  • 网站开发设计教程城乡建设主管部门官方网站
  • 规范网站建设网站开发入门需要学什么
  • 定制营销型网站花店商城网站设计
  • 网站建设需要的流程腾讯企业邮箱收费标准一年多少钱
  • 响应式网页前端设计开封搜索引擎优化
  • vs2008 做网站镇江企业做网站
  • 网站建设制作设计优化内容营销怎么做
  • 磁力链接 网站怎么做的网站推广优化业务
  • 贾汪网站开发还有什么类似建设通的网站
  • 做网站我网站找第三方支付企业wordpress主题下载地址
  • 如何做网站流量统计上海网站开发设计培训
  • 青岛外贸网站大宗交易平台查询
  • 手机网站微信代码网站公司建设 中山
  • 专注扬中网站建设长沙行业网站建设
  • 怎么确定网站关键词企业网站备案那么麻烦吗
  • 网站如何做站内站网站开发开票内容写什么
  • 源码购买网站襄樊最好网站建设价格
  • 做网站字号多大服务外包主要做什么
  • 最好的开发网站建设wordpress只允许登陆
  • 国际网站后缀阳江招聘网前程无忧
  • 湛江cms模板建站网站示例
  • 网站展示型推广有哪些学校网站建设调查问卷
  • 中职网站建设与维护考试题公司网站推广费用
  • 山东省住房城乡建设厅网站首页做甲方去哪个网站应聘
  • 珠海建网站设计做网站欢迎页什么意思
  • 上海专业微信网站开发公司同城推广引流平台
  • 专业的培训网站建设沙坪坝做网站
  • 嘉兴手机端建站模板旅游网站系统功能