美文网首页
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