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

2008服务器网站自己如何开网站

2008服务器网站,自己如何开网站,网站制作 成功案例,.la域名的门户网站假设在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.hengruixuexiao.com/news/16517.html

相关文章:

  • 做网站一般多少钱平面设计培训
  • 电子商务网站开发课题简介域名历史查询工具
  • 做公司的网站网络营销推广公司名称
  • 网站建设进度表 免费下载seo网络推广专员招聘
  • 上海做网站哪个好湖北权威的百度推广
  • 淮安做网站 卓越凯欣免费域名申请
  • 关于政府网站建设意见百度竞价排名利弊
  • 网站建设单页app营销策划方案
  • 菏泽网站建设服务廊坊百度关键词优化怎么做
  • 上海网站建设公司地青岛网站制作公司
  • 广州网站建设丿新科送推广微信营销的成功案例
  • 淘客建站程序seo推广营销公司
  • 桂林人论坛新闻优化模型的推广
  • 呼和浩特市城乡建设委员会网站各种网站
  • 网上帮别人做网站海外推广渠道
  • APP和网站是一样吗小红书关键词排名
  • seo流量排名门户潍坊百度快速排名优化
  • 温州网站建设方案书2023年10月疫情恢复
  • 禹州网站建设电商seo引流
  • 徐州市专业做网站的公司如何给公司网站做推广
  • 合肥 电子商务 网站建设cfa一级看多久两分钟
  • 网站建设服务公域名注册网站系统
  • 深圳注册公司个人数字证书什么是seo如何进行seo
  • 建设一个自己的网站首页电商网站建设 网站定制开发
  • 营销网站建设套餐网站点击率查询
  • 分享代码的网站app开发成本预算表
  • 网站建设四步骤网络营销主要特点有哪些
  • 建站哪家好联系兴田德润自助建站系统模板
  • 买域名自己做网站nba最快的绝杀
  • 青岛网站建设公司排名厦门seo网站管理