spring的三级缓存

spring的三级缓存:

Spring 容器的“三级缓存”

Spring 容器的整个生命周期中,单例Bean对象是唯一的。即可以使用缓存来加速访问

Spring 源码中使用了大量的 Cache 手段,其中在循环依赖问题的解决过程中就使用了“三级缓存”

三级缓存的意义

singletonObject:一级缓存,存放完全实例化且属性赋值完成的 Bean ,可以直接使用
earlySingletonObject:二级缓存,存放早期 Bean 的引用,尚未装配属性的 Bean
singletonFactories:三级缓存,存放实例化完成的 Bean 工厂

除了三级缓存,还有另外两个缓存

singletonsCurrentlyInCreation: bean 在创建的过程中都会存储在此,创建完成移出
alreadyCreated:存放至少被创建一次的 bean,不会重复。即标记 bean 是否创建完成

原文链接:https://blog.csdn.net/weixin_44181671/article/details/108630950

对于Spring循环依赖的情况总结如下:

不能解决的情况:

  1. 构造器注入循环依赖
  2. prototype field属性注入循环依赖

能解决的情况

  1. field属性注入(setter方法注入)循环依赖

spring ioc 内部的三级缓存保证了它不会出现循环依赖问题。为什么呢?
https://blog.csdn.net/weixin_44181671/article/details/108630950

但最后循环依赖最终是设计层面的问题,应该从设计层面来避免它,以免后续系统难以维护。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/5411.html

(0)
LomuLomu
上一篇 2025 年 1 月 6 日 下午3:44
下一篇 2025 年 1 月 6 日

相关推荐

  • ChatGPT Plus代充流程充值开通教程

    搜索 ChatGPT Plus 充值的人,通常不是不会注册账号,而是卡在订阅付款和账号升级上。共享账号看起来简单,但不适合放工作内容和个人资料;海外信用卡、虚拟卡又需要额外维护。本文按国内用户更容易操作的路径,把购买卡密、提交 Session、确认账号到刷新 Plus 状态的步骤重新整理一遍。

    未分类 2026 年 6 月 30 日
    16100
  • 一步到位:购买适合 SEO 的域名全攻略

    选择一个对 SEO 友好的域名不仅可以提高搜索引擎排名,还能增强品牌影响力。以下是简化优化后的购买流程: 1. 检查域名历史,确保无负面记录 在购买域名前,务必确认它没有被封锁或拉黑,并且历史记录与您的行业相关: 检查域名安全性和历史 VirusTotal:查看域名是否被列为不安全。 Web Archive:查看域名以前的用途,判断是否有不良记录或与您的行业…

    2024 年 12 月 30 日
    73000
  • 2026Claude Pro国内支付续费提醒设置

    2026Claude Pro国内支付续费提醒设置,围绕国内支付、微信支付宝代充、开通续费和到账验收整理。

    未分类 2026 年 6 月 1 日
    17700
  • Claude Pro、Max 5x和Max 20x订阅有什么区别?

    对比Claude Pro、Max 5x和Max 20x价格、使用额度、Claude Code权益和适合的工作强度。

    未分类 2026 年 7 月 14 日
    12500
  • 自媒体创作者给ChatGPT Plus充值,首选国内支付方式

    自媒体创作者对 ChatGPT Plus 充值这件事应该不算陌生:已经在官网下单付过一次款,账单里也确实扣了钱,回到网页却还是显示免费版,不确定是订阅没同步生效,还是这笔订单本身在提交环节就出了问题,越等越着急。遇到这种情况,其实不用死磕官网付款,用卡密走一遍自助充值流程,很快就能把问题解决。

    未分类 2026 年 8 月 18 日
    10800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信