• 2024-04-01单例模式
    publicclassSingletonObject{publicstringname{get;set;}publicSingletonObject(){name=Guid.NewGuid().ToString();}publicstaticreadonlyobjectlock_obj=newobject();publicstaticSingletonObjectsingletonObject;
  • 2023-10-26设计模式—创建型模式之单例模式
    设计模式—创建型模式之单例模式介绍单例模式说明:一个单一的类,负责创建自己的对象,同时确保系统中只有单个对象被创建。单例模式特点:某个类只能有一个实例;(构造器私有)它必须自行创建这个实例;(自己编写实例化逻辑)它必须自行向整个系统提供这个实例;(对外提供实例化方法)单例模式
  • 2023-10-13博学谷学习记录 自我总结 用心分享 | Spring源码刨析
    别再盲目的说spring有三级缓存了,两个缓存只是启动时为了解决循环依赖,spring启动后只有一个缓存有用一、什么是循环依赖循环依赖指的就是循环引用,就是两个或多个bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终
  • 2023-10-11Spring 源码分析(五)——Spring三级缓存的作用分别是什么?
    Spring的三级缓存是经典面试题,也会看到一些文章讲三级缓存与循环依赖之的关系。那么,三级缓存分别存储的什么呢?他们的作用又分别是什么?一、一、二级缓存一级缓存是一个名为singletonObjects的ConcurrentHashMap,用于存储已经创建完成的Bean。其作用也是最明显的,获取Bean时最优
  • 2023-10-05Spring 是如何解决循环依赖的
    首先我们要了解spring实例化bean的三步骤:1)doCreateBeanInstance,通过无参构造方法创建一个bean的实例。2)populateBean,填充bean的属性。3)initialBean,执行bean的初始化。Spring的循环依赖主要发生在第一步和第二步。Spring的依赖注入有三种情况:1.构造器注入,对于构造器注
  • 2023-05-04说透 Spring循环依赖和3级缓存
    Bean加载的总体流程FactoryBean的使用地位:FactoryBean接口是Spring重要的拓展接口用途:用于复杂的初始化或者框架集成使用:自定义类继承接口FactoryBean原理:spring的getBean方法会回调FactoryBean的getObject方法缓存中获取单例bean说明下3级缓存指的是什么:map的名称完整性几级缓存
  • 2022-11-14Spring框架中都用到了哪些设计模式 ?
    1.简单工厂模式简单工厂模式的本质就是一个工厂类根据传入的参数,动态的决定实例化哪个类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得
  • 2022-10-05Spring源码-Spring为什么使用三级缓存解决循环依赖
    Spring使用三级缓存,分别是singletonObjects,earlySingletonObjects,singletonFactories来解决循环依赖问题。但是用二级缓存就可以解决循环依赖了。为什么要使用三级缓存呢?因
  • 2022-10-05Spring源码-循环依赖
    解决循环依赖的思路是将将创建bean分为实例化和初始化,实例化只是为类分配内存,类里面的属性全部都是默认值;初始化是为类的属性设置具体值。所以只能解决set方法注入的循环依
  • 2022-10-03这么回答【循环依赖】助力轻松拿下阿里P6
    一篇文章彻底搞定Spring循环依赖lecture:波哥一、什么是循环依赖看下图:  上图是循环依赖的三种情况,虽然方式有点不一样,但是循环依赖的本质是一样的,就你的完整创建要依赖与
  • 2022-09-28Spring源码-doGetBean
    protectedTdoGetBean(Stringname,@NullableClassrequiredType,@NullableObject[]args,booleantypeCheckOnly)throwsBeansException{ StringbeanName=t