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

邵阳建设网站公司网络营销是网络销售吗?

邵阳建设网站公司,网络营销是网络销售吗?,部门做网站优点,养殖网站源码1.什么是Bean的循环依赖? 简单来说就是在A类中,初始化A时需要用到B对象,而在B类中,初始化B时需要用到A对象,这种状况下在Spring中,如果A和B同时初始化,A,B同时都需要对方的资源&…

1.什么是Bean的循环依赖?

        简单来说就是在A类中,初始化A时需要用到B对象,而在B类中,初始化B时需要用到A对象,这种状况下在Spring中,如果A和B同时初始化,A,B同时都需要对方的资源,就会僵持不下。这也就是Spring中的循环依赖问题。Spring框架对这种属性所产生的循环依赖的解决办法很简单,就是使用@Autowired注解,如下:

public class BeanA {@Autowiredprivate BeanB beanB;
}public class BeanB {@Autowiredprivate BeanA beanA;
}

        对于构造方法的循环依赖,Spring可采用@Lazy或者使用Setter()方法去解决,这里我们不做讨论。

2.@Autowired

        在Spring中,我们可以使用@Autowired注解对属性或者方法参数进行标注,会从IOC容器中拿到对应的实例自动注入。

3.解决循环依赖的具体细节

        首先,Spring中内部有三大缓存,在 DefaultSingletonBeanRegistry 类中定义了 3 个 Map 对象充当缓存。分别是:

  • singletonObjects:一级缓存,用于保存实例化,初始化完成之后的Bean实例,ConcurrentHashMap存储,线程安全。
  • earlysingletonObjects:二级缓存,用于保存实例化完成,还未初始化完的Bean实例,属于提前暴露。
  • singleFactories:三级缓存,存放生成Bean的工厂,也相当是存放了获取Bean的一个回调方式。

        具体实现:

先把创建A的工厂,存入到三级缓存中,之后A进行实例化,实例化之后需要属性赋值B, 然后再一级、二级、三级缓存中找B,如果都没有,将创建B的工厂存入到三级缓存,之后B进行实例化,B实例化后需要属性赋值A,所以就去三级缓存中利用创建A的工厂回调拿到A,之后B的属性赋值完毕,然后将拿到的A存放到二级缓存中,并删除三级缓存中A的工厂,等到B整体初始化完毕,将B放入一级缓存,然后A的属性赋值B也完成,等到A整体初始化完毕,则将A存放到一级缓存中,并删除二级缓存的A。

        

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

相关文章:

  • 网站建设哪家好就推 鹏博资讯连锁 加盟 网站模板
  • 周到的企业网站建设广州网站优化排名推广
  • 做网站在浏览器预览怎么出现了状况宁波品牌网站建设服务电话
  • 衡水手机网站建设价格室内设计培训班哪家好
  • 成都 网站设计公司一级造价工程师合格标准
  • 网站开发后是不是下挂到域名南宁正规的seo费用
  • 网站建设中数据安全研究网站制作文章
  • 推广企业网站域名黄山网站开发jidela
  • 比较有设计感的网站北京官方网站网
  • 鸿顺里网站建设品牌网站建设专家
  • 做网站怎么接活如何制作私人网站
  • 全栈网站开发流程图网店推广实训
  • 免费视图网站建设承德公司做网站
  • 个人主页网站制作教程网站推广策划案关键词
  • 湖南建设工程竣工备案表查询网站上海网络宣传公司
  • 学校网站设计首页什么是网络营销竞争的利器之一
  • 东莞网站建设周期ks免费刷粉网站推广低价
  • 5昌平区网站建设企业网站页头背景图
  • 网站登陆界面模板当当网站建设优点
  • 化工课设代做网站网站建设公开课
  • 部队网站怎么做wordpress 快速编辑
  • 网站兼容奢侈品电商网站首页设计
  • 网站手机版怎么弄vs网站开发教程
  • 北京网站建设公司排名钓鱼网站制作的报告
  • 建设银行网站怎么取消短信服务网站静态模板下载
  • 保定企业制作网站上海网站建设天锐科技
  • 医疗网站建设平台价格公司网站二维码怎么做
  • 坪地网站建设公司汽车报价软件排行榜
  • 网站模板 黑色最新旅游热点
  • 哈尔滨网站建设网站龙采哈尔滨建站公司