![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring源码
文章平均质量分 85
我的编号9527
追求写出最完美的代码
展开
-
Spring源码(4)单例Bean的创建及初始化过程
前言在前面的三篇文章中,我们了解IOC的初始化流程Spring源码(1)IOC的初始化流程(构造器篇,基于注解)Spring源码(2)IOC的初始化流程(register篇)Spring源码(3)IOC的初始化流程(refresh篇)这一篇,我们开始refresh方法中的finishBeanFactoryInitialization(beanFactory)方法。直接上代码:/** * Finish the initialization of this context's bean fac原创 2021-08-25 17:50:25 · 305 阅读 · 0 评论 -
关于spring 三级缓存的想法
最近看到一道面试题:spring为什么用三级缓存来解决循环依赖,用二级可以么?查了一下网上的回答,普遍是根据两个点回答,在没有aop的情况下,二级缓存就可以解决,有aop的话就需要三级缓存。甚至什么只用一级缓存会造成死循环之类的。真的就是这样子么,如果你真的认真看过源码并仔细思考的话,你就会发现,其实,无论有没有aop只需要一级缓存就可以将可以解决所有问题了,我们先来看看三个缓存在spring中的作用/** Cache of singleton objects: bean name to bean i原创 2021-08-24 18:03:37 · 118 阅读 · 0 评论 -
Spring源码(3)IOC 的初始化流程(refresh篇)
前言在上一篇文章中,我们了解了register的基本流程Spring源码(2)IOC 的初始化流程(register篇),总结为一点,(*基于注解,基于XML的我们会在另一篇文章讲解)就是将class解析成BeanDefinition,并把它放到缓存中(BeanDefinitionMap)去。这一篇,我们开始refresh方法的学习。同样的,我们先回顾一下程序入口public AnnotationConfigApplicationContext(Class<?>... component原创 2021-08-18 15:04:22 · 179 阅读 · 0 评论 -
Spring源码(2)IOC 的初始化流程(register篇)
前言在上一篇文章中,我们了解了IOC(基于注解)的构造器的初始化过程Spring源码(1)IOC 的初始化流程(构造器篇,基于注解)这一篇我们开始register(componentClasses)方法的讲解我们先回顾一下程序入口public AnnotationConfigApplicationContext(Class<?>... componentClasses) { //调用无参构造器 //在本类创建 AnnotatedBeanDefinitionReader和ClassPa原创 2021-08-16 19:03:10 · 212 阅读 · 0 评论 -
Spring源码(1)IOC 的初始化流程(构造器篇,基于注解)
前言最近花了一个多月的时间,把spring ioc 的源码大概的看了一遍,由于经常看到后面就忘记前面,所以决定以文章的方式分享出来,也可以供自己复习和回顾。Spring源码版本为:5.2.8.RELEASE(基于注解)AnnotationConfigApplicationContext的初始化过程我们在创建spring 容器的时候,一般是以下面的形式进行创建:ApplicationContext ioc = new AnnotationConfigApplicationContext(Sprin原创 2021-08-16 16:11:24 · 249 阅读 · 0 评论