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

网站搭建需要什么技术目前最流行网站开发软件

网站搭建需要什么技术,目前最流行网站开发软件,创意广告宣传片制作,国外在线设计平台什么是Bean的循环依赖 A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你,你也依赖我。 比如:丈夫类Husband,妻子类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依赖ClassB,ClassB又依赖ClassA,形成依赖闭环。

Spring在创建ClassA对象后,不需要等给属性赋值,直接将其曝光到bean缓存当中。

在解析ClassA的属性时,又发现依赖于ClassB,再次去获取ClassB,当解析ClassB的属性时,又发现需要ClassA的属性,但此时的ClassA已经被提前曝光加入了正在创建的bean的缓存中,则无需创建新的的ClassA的实例,直接从缓存中获取即可。从而解决循环依赖问题。  

http://www.yayakq.cn/news/434009/

相关文章:

  • 公众号网站怎么做网站制作类软件推荐
  • 乔拓云建站平台企业网站的形式有哪些
  • 网站内容的排版布局网站建设推介
  • 网新企业网站管理系统 破解企业公司有哪些
  • 永济市做网站北京网站制作合肥
  • 怎么做网站发货wordpress 分类顺序
  • 多语言版本的网站九江浔阳网站建设
  • 网站源码下载教程长沙网建站
  • 自己的域名怎么做网站全网vip影视网站一键搭建
  • 企业网站建设代理在百度搜索到自己的网站
  • 做网站从哪里找货源大连seo
  • 属于网站seo分析什么软件个人电脑搭建游戏服务器
  • 网站建设kpi考核苏州市建设工程质量监督站网站
  • 在线制作视频的网站盐田做网站
  • 外贸网站建设收益移动网站与pc网站
  • 公园网站建设方案 ppt模板山西营销型网站建设
  • 织梦 公司网站模板注册网站诚信承诺书
  • 服务网站建设推广wordpress输出友情链接
  • 宝安建网站公司建设网站用什么好
  • 企业网站建设中企动力做问卷美观的网站
  • 溧阳手机网站设计母婴网站源码dede
  • 吕梁营销型网站建设费用水泵行业网站哪个做的好
  • 绍兴网站建设设计制作网站 引导页 设计
  • 锦州微商网站制做做网站需要哪些费用
  • 建e网手机版杭州搜索引擎优化公司
  • 网站设计思想西安市未央区建设局官方网站
  • 网站制作推广招聘辽宁省建设工程信息网排名
  • 网站开发对显卡的要求海南省住房公积金管理局网上办事大厅
  • 东营兴通建设工程公司网站做网站 最好的开源cms
  • 建站系统主要包括对二次网站开发的认识