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

美的地产集团官方网站建设独立站seo是什么

美的地产集团官方网站建设,独立站seo是什么,个人建设什么网站好,wordpress 免费cdn1、Spring三级缓存是什么,过程是怎么样的? Spring 中的三级缓存主要用于单例 Bean 的生命周期管理,特别是在循环依赖时,它通过不同阶段暴露 Bean 实例来确保依赖注入的顺利完成。缓存的内容如下: 一级缓存 (singleton…

1、Spring三级缓存是什么,过程是怎么样的?

Spring 中的三级缓存主要用于单例 Bean 的生命周期管理,特别是在循环依赖时,它通过不同阶段暴露 Bean 实例来确保依赖注入的顺利完成。缓存的内容如下:

  1. 一级缓存 (singletonObjects)存储完全初始化的单例 Bean。该缓存中存储的是已经完成初始化的 Bean 对象,包括所有的属性注入和生命周期回调方法(如 @PostConstruct)都已完成。

  2. 二级缓存 (earlySingletonObjects)存储实例化但尚未完成所有初始化步骤的 Bean 引用。也就是 Bean 已经完成了实例化,并完成了依赖注入(如字段注入),但可能还没有执行初始化方法(如 @PostConstruct)。二级缓存用于解决循环依赖问题,当需要注入的 Bean 还没有完全初始化时,可以先返回该 Bean 的早期引用。

  3. 三级缓存 (singletonFactories)存储的是创建 Bean 的工厂(ObjectFactory),而不是直接存储 Bean 实例。这些工厂延迟返回真正的 Bean 实例,直到它们完成初始化。三级缓存用于处理 循环依赖 的核心,当一个 Bean 处于创建过程中,另一个 Bean 依赖它时,可以从三级缓存中获取一个工厂对象,该工厂会在 Bean 完全初始化后,生成一个完整的 Bean 实例。

2、从缓存中获取单例对象

2.1、代码解读

public Object getSingleton(String beanName, boolean allowEarlyReference) {// 1. 检查一级缓存,获取已完成初始化的 BeanObject singletonObject = this.singletonObjects.get(beanName);if (singletonObject == null && this.singletonsCurrentlyInCreation.contains(beanName)) {// 2. 如果一级缓存没有,且 Bean 正在创建中,则检查二级缓存singletonObject = this.earlySingletonObjects.get(beanName);if (singletonObject == null && allowEarlyReference) {// 3. 如果二级缓存也没有,允许提前引用时,检查三级缓存ObjectFactory<?> singletonFactory = this.singletonFactories.get(beanName);if (singletonFactory != null) {// 4. 从三级缓存中获取 Bean 实例singletonObject = singletonFactory.getObject();// 5. 将生成的对象放入二级缓存this.earlySingletonObjects.put(beanName, singletonObject);// 6. 从三级缓存中移除工厂this.singletonFactories.remove(beanName);}}}// 7. 返回从缓存中获取的单例对象return singletonObject;
}

2.2、执行流程

  1. 一级缓存 (singletonObjects):
    检查一级缓存,获取完全初始化的 Bean。
    如果一级缓存中存在该对象,则直接返回。

  2. 二级缓存 (earlySingletonObjects):
    如果一级缓存中没有找到该对象,且该对象正在创建过程中(this.singletonsCurrentlyInCreation),则检查二级缓存。
    如果二级缓存中存在早期暴露的 Bean,则直接返回。

  3. 三级缓存 (singletonFactories):
    如果二级缓存中也没有,并且允许提前引用(allowEarlyReference 为 true),则从三级缓存中获取工厂对象(ObjectFactory)。
    调用 ObjectFactory.getObject() 方法生成 Bean 实例。
    将生成的实例放入二级缓存,同时从三级缓存中移除对应的工厂。

http://www.zhongyajixie.com/news/15828.html

相关文章:

  • 网站制作公司咨询热线杭州百度快照优化排名推广
  • php商城网站开发报告郑州网站公司哪家好
  • 广西建设网站首页潍坊seo教程
  • 近期做网站需要什么软件网站排名大全
  • 简述上课网站建设所用的技术架构全国疫情排行榜
  • 保山网站建设网络营销最新案例
  • 网站自适应开发刷seo关键词排名软件
  • 网上购物网站建设论文6对网络营销的认识有哪些
  • 菏泽做网站优化的营销推广活动策划方案
  • css网页模板下载做关键词优化的公司
  • 网页设计学习总结天津seo建站
  • 沈阳市住房和城乡建设局网站手游推广渠道和推广方式
  • 用户体验网站万网官网登录
  • 手机网站建设开什么类型的票天津搜狗seo推广
  • 荣耀正品查询入口合肥优化推广公司
  • 网站建设的前景一篇好的营销软文
  • 德州市建设小学网站宁波seo外包推广
  • 用drupal做的网站深圳seo公司
  • 装饰行业做网站国内比百度好的搜索引擎
  • 高中制作网站怎么做邵阳疫情最新消息
  • 做网站设计需要学会哪些百度pc端提升排名
  • 自己怎么做新闻开头视频网站网络营销案例分析题
  • iis做的网站模板启动互联全网营销推广
  • wordpress ip地址修改百度seo关键词排名优化软件
  • 西安php网站建设广州今天刚刚发生的重大新闻
  • 做网站那种语言好cps广告是什么意思
  • 西安网站开发的空间怎么制作公司网站
  • 网站建设明细报价表 服务器怎么开展网络营销推广
  • 湖南省建设银行网站6太原做网络推广的公司
  • 企业网站怎么形成二维码治疗腰椎间盘突出的特效药