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

佛山多语网站制作十大品牌网

佛山多语网站制作,十大品牌网,主机做网站,有哪个理财网站是专门做汽车抵押的什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你#xff0c;你也依赖我。 比如#xff1a;丈夫类Husband#xff0c;妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 Spring解决循环依赖的机理 Spring为什么可以解决set s…什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你你也依赖我。 比如丈夫类Husband妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。 Spring解决循环依赖的机理 Spring为什么可以解决set singleton模式下循环依赖 根本的原因在于这种方式可以做到将“实例化Bean”和“给Bean属性赋值”这两个动作分开去完成。 实例化Bean的时候调用无参数构造方法来完成。此时可以先不给属性赋值可以提前将该Bean对象“曝光”给外界。 给Bean属性赋值的时候调用setter方法来完成。 两个步骤是完全可以分离开去完成的并且这两步不要求在同一个时间点上完成。 也就是说Bean都是单例的我们可以先把所有的单例Bean实例化出来放到一个集合当中我们可以称之为缓存所有的单例Bean全部实例化完成之后以后我们再慢慢的调用setter方法给属性赋值。这样就解决了循环依赖的问题。 Spring框架底层源码级别上是如何实现的 在以上类中包含三个重要的属性 *Cache of singleton objects: bean name to bean instance.* 单例对象的缓存key存储bean名称value存储Bean对象【一级缓存】 *Cache of early singleton objects: bean name to bean instance.* 早期单例对象的缓存key存储bean名称value存储早期的Bean对象【二级缓存】 *Cache of singleton factories: bean name to ObjectFactory.* 单例工厂缓存key存储bean名称value存储该Bean对应的ObjectFactory对象【三级缓存】 这三个缓存其实本质上是三个Map集合。 我们再来看在该类中有这样一个方法addSingletonFactory()这个方法的作用是将创建Bean对象的ObjectFactory对象提前曝光。 再分析下面的源码 从源码中可以看到spring会先从一级缓存中获取Bean如果获取不到则从二级缓存中获取Bean如果二级缓存还是获取不到则从三级缓存中获取之前曝光的ObjectFactory对象通过ObjectFactory对象获取Bean实例这样就解决了循环依赖的问题。 Spring只能解决setter方法注入的单例bean之间的循环依赖。 ClassA依赖ClassBClassB又依赖ClassA形成依赖闭环。 Spring在创建ClassA对象后不需要等给属性赋值直接将其曝光到bean缓存当中。 在解析ClassA的属性时又发现依赖于ClassB再次去获取ClassB当解析ClassB的属性时又发现需要ClassA的属性但此时的ClassA已经被提前曝光加入了正在创建的bean的缓存中则无需创建新的的ClassA的实例直接从缓存中获取即可。从而解决循环依赖问题。
http://www.yingshimen.cn/news/86961/

相关文章:

  • 网站备案通过后怎么办网站 产品原型
  • 做目录网站注意事项七台河新闻直播
  • 国外ps素材网站外贸网络推广招聘
  • 徐州做网站的公司哪家好设计说明怎么写模板
  • 手机网站开发需求文档医院网站 行风建设
  • 代刷网站app制作教程慧聪网官网首页
  • 哪些网站可以做产品推广沈阳搜索排名公司
  • 北京教育云平台网站建设多媒体网页设计是什么
  • 千龙网站建设python做网站部署
  • 地方门户网站还能做吗简单的网站php开发教程
  • 外链平台长沙网络推广袁飞seo
  • 空间域名主机网站模板网站建设目的功能
  • 网站怎么做利于优化电商网站建设系统
  • 做网站成本重庆网站建设价格
  • 品牌型网站建设哪家网站商城微信支付接口申请
  • 服务器 网站建设有哪些推广的网站
  • 商城网页制作网站搭建推广优化
  • 银川做网站的公司个人主页设计孙悟空示例
  • 广州出名的网站如何开展网络推广
  • 程序员 给老婆做网站网站模版下载
  • 常州建设银行网站响应式网站建设 苏州
  • wordpress外链优化网站的公司
  • 做网站最基础需要什么条件厂字型布局网站
  • 潍坊做网站潍坊做网站常见的网络营销方式有哪些
  • 网站的特效代码可以建网站的平台
  • 网站没有收录原因设计类的网站和简介
  • 专业柳州网站建设哪家便宜平台开发是做什么的
  • 有没有做市场评估的网站做哪个外贸网站不用交费
  • 网站建设 新要求值得关注的网站
  • 网站怎么做json数据库1 分析seo做的不好的网站