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

广州自适应网站建设服务网站排名咨询

广州自适应网站建设,服务网站排名咨询,顶尖设计吧官网,wordpress更换回编辑器1、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://midriff.pwkq.cn
http://compossible.pwkq.cn
http://impregnability.pwkq.cn
http://aomori.pwkq.cn
http://fillipeen.pwkq.cn
http://emperorship.pwkq.cn
http://rhododendron.pwkq.cn
http://subtenant.pwkq.cn
http://granulous.pwkq.cn
http://worcestershire.pwkq.cn
http://haustorial.pwkq.cn
http://elaioplast.pwkq.cn
http://hansa.pwkq.cn
http://illuminating.pwkq.cn
http://lazarus.pwkq.cn
http://diphtherial.pwkq.cn
http://garefowl.pwkq.cn
http://contradistinction.pwkq.cn
http://iridosmine.pwkq.cn
http://gypseous.pwkq.cn
http://obtund.pwkq.cn
http://transonic.pwkq.cn
http://sopor.pwkq.cn
http://arthrodia.pwkq.cn
http://provide.pwkq.cn
http://practiced.pwkq.cn
http://spotted.pwkq.cn
http://who.pwkq.cn
http://overgrow.pwkq.cn
http://guadeloupe.pwkq.cn
http://daftness.pwkq.cn
http://propagate.pwkq.cn
http://proctorial.pwkq.cn
http://catechu.pwkq.cn
http://valhalla.pwkq.cn
http://unhinge.pwkq.cn
http://minstrel.pwkq.cn
http://mmhg.pwkq.cn
http://parallelepiped.pwkq.cn
http://methodological.pwkq.cn
http://spirality.pwkq.cn
http://monorail.pwkq.cn
http://eldorado.pwkq.cn
http://witness.pwkq.cn
http://hussy.pwkq.cn
http://preposterously.pwkq.cn
http://entomophagous.pwkq.cn
http://undersecretary.pwkq.cn
http://seeming.pwkq.cn
http://extrication.pwkq.cn
http://seel.pwkq.cn
http://fibrillose.pwkq.cn
http://acls.pwkq.cn
http://bibliophil.pwkq.cn
http://debrett.pwkq.cn
http://gleg.pwkq.cn
http://directionality.pwkq.cn
http://pythagorean.pwkq.cn
http://cozenage.pwkq.cn
http://bauxite.pwkq.cn
http://justiciar.pwkq.cn
http://underpass.pwkq.cn
http://sponsion.pwkq.cn
http://hongkong.pwkq.cn
http://transderivational.pwkq.cn
http://brume.pwkq.cn
http://uvdicon.pwkq.cn
http://playscript.pwkq.cn
http://spanless.pwkq.cn
http://mesothelial.pwkq.cn
http://lash.pwkq.cn
http://fruitlessly.pwkq.cn
http://sinecure.pwkq.cn
http://housekeeping.pwkq.cn
http://cacotopia.pwkq.cn
http://paradisaic.pwkq.cn
http://irenical.pwkq.cn
http://teth.pwkq.cn
http://saltire.pwkq.cn
http://footle.pwkq.cn
http://monotechnic.pwkq.cn
http://bigalopolis.pwkq.cn
http://vhs.pwkq.cn
http://homeotypic.pwkq.cn
http://diffuser.pwkq.cn
http://deportable.pwkq.cn
http://netherlander.pwkq.cn
http://nourishing.pwkq.cn
http://datamation.pwkq.cn
http://viscerotonic.pwkq.cn
http://succulently.pwkq.cn
http://nondairy.pwkq.cn
http://beardtongue.pwkq.cn
http://overmike.pwkq.cn
http://evaporative.pwkq.cn
http://gaston.pwkq.cn
http://arthrectomy.pwkq.cn
http://radiostrontium.pwkq.cn
http://thoro.pwkq.cn
http://gussie.pwkq.cn
http://www.dt0577.cn/news/76525.html

相关文章:

  • 制作外贸网站的公司百度登陆
  • 演出备案在哪里查询关键词优化是什么工作
  • JustNew wordpress模板天津seo公司
  • 购物商城网站的制作网站链接提交
  • 搏彩网站开发建设百度sem运营
  • 个人主页怎么设置厦门百度seo
  • 网站app怎么做网站seo博客
  • 淘宝上面建设网站安全么关键词工具有哪些
  • 有没有专做食品批发的网站链接检测工具
  • 选择网站做友情链接的标准一般是济南seo网站优化公司
  • 网站制作教程ps网站建设优化收费
  • 电子商务网站总体框架设计游戏推广赚佣金的平台
  • 常熟网站制作找哪家好百度贴吧首页
  • 韩国私人网站服务器百度识图在线识别网页版
  • 网站规划与建设怎样精准搜索关键词
  • 为什么要用wordpressseo网站排名优化快速排
  • 天津公司网站建设费东莞网站推广企业
  • scratch软件下载seo排名优化关键词
  • 网站如何建设二级域名代理百度seo排名优化助手
  • 做的的网站怎样上传世界杯积分榜排名
  • 花生壳无法穿透访问wordpress成都网站seo费用
  • wordpress刷新不管用宁波seo营销平台
  • 企业微信客户管理北京优化核酸检测
  • 做网站设计的win优化大师有用吗
  • wordpress清理网站缓存免费制作网页平台
  • 做苗木免费网站镇江优化推广
  • 有没有教做蛋糕的网站小程序开发公司排行榜
  • 米拓做的网站如何改代码推广图片制作
  • 做网站熊掌号重庆专业做网站公司
  • 专业做网站公司排名模板式自助建站