美文网首页
spring的三级缓存

spring的三级缓存

作者: 玖柒叁 | 来源:发表于2023-09-03 19:56 被阅读0次

spring生命周期加载过程

image.png

三级缓存的作用

class DefaultSingletonBeanRegistry{
    //一级缓存,存储经过完整生命周期的bean对象
    private final Map<String, Object> singletonObjects = new ConcurrentHashMap(256);
    //出现嘞循环依赖时,提前创建的AOP代理对象会存在这里(还没有经过完成的生命周期),防止多个服务提前创建AOP代理对象导致单例模式的破坏
    private final Map<String, Object> earlySingletonObjects = new ConcurrentHashMap(16);
    //三级缓存,打破循环依赖,在对象开始实例化时,如果该对象支持单例、允许循环依赖、在创建中,便会将该对象放入到这个缓存中
    private final Map<String, ObjectFactory<?>> singletonFactories = new HashMap(16);
    
}

循环依赖与解决

1、三级缓存
2、@Lazy注解

相关文章

网友评论

      本文标题:spring的三级缓存

      本文链接:https://www.haomeiwen.com/subject/mnafvdtx.html