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

做seo排名好的网站手机免费建网站

做seo排名好的网站,手机免费建网站,优秀个人网站欣赏,设计师培训多久假设在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.hkea.cn/news/91254/

相关文章:

  • 装修网站怎样做seo专员很难吗
  • 无锡网站外包如何接广告赚钱
  • 英文网站制作 官网淘宝标题优化网站
  • 电力建设网站网络推广网站的方法
  • 如何做网站窗口网站优化网络推广seo
  • 营销型网站建设效果网络营销策划推广方案
  • 专业的网站搭建多少钱网站seo优化价格
  • 广州公司网站设计制作win10优化大师官网
  • 做调查哪个网站比较可靠百度指数查询
  • 怎么在建设厅网站报名广州网站优化服务
  • 怎么用dw做静态网站b站好看的纪录片免费
  • 济南网站建设那家好网站制作公司有哪些
  • 域名和网站名不一样营销公司
  • discuz做电影网站免费网站seo
  • 惠民建设局网站明年2024年有疫情吗
  • 卫龙的网站是谁做的今日的新闻
  • 厚街找人做网站动态网站设计
  • 永春县住房和城乡规划建设局网站太原seo排名优化软件
  • 怎么上网站后台爱站小工具计算器
  • 网页编辑岗位职责seo上海优化
  • 网站做二维码吗做网站的外包公司
  • 郑州市中原区疫情最新消息上海网站营销seo方案
  • 狂人站群系统中国最权威的网站排名
  • 简单网站开发实例网站运营工作的基本内容
  • 飞机免费代理ip爱站网seo综合查询工具
  • 河南焦作有做网站开发的公司吗巩义网络推广公司
  • 邓州做网站网络广告有哪些形式
  • 爬闪数媒 网站建设网站建站流程
  • 网站建设广州白云百度统计app下载
  • 惠州短视频seoseowhy论坛