spring的三级缓存

[复制链接]
发表于 2025-1-3 15:15:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
spring的三级缓存:
Spring 容器的“三级缓存”
Spring 容器的整个生命周期中,单例Bean对象是唯一的。即可以使用缓存来加快访问
Spring 源码中使用了大量的 Cache 手段,此中在循环依靠题目的解决过程中就使用了“三级缓存”
三级缓存的意义
singletonObject:一级缓存,存放完全实例化且属性赋值完成的 Bean ,可以直接使用
earlySingletonObject:二级缓存,存放早期 Bean 的引用,尚未装配属性的 Bean
singletonFactories:三级缓存,存放实例化完成的 Bean 工厂
除了三级缓存,还有另外两个缓存
singletonsCurrentlyInCreation: bean 在创建的过程中都会存储在此,创建完成移出
alreadyCreated:存放至少被创建一次的 bean,不会重复。即标志 bean 是否创建完成
原文链接:
对于Spring循环依靠的情况总结如下:
不能解决的情况:

  • 构造器注入循环依靠
  • prototype field属性注入循环依靠
能解决的情况:

  • field属性注入(setter方法注入)循环依靠
spring ioc 内部的三级缓存包管了它不会出现循环依靠题目。为什么呢?

但末了循环依靠最终是设计层面的题目,应该从设计层面来制止它,以免后续体系难以维护。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表