Spring源码分析
文章平均质量分 95
一直要努力哦
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring源码分析之SpringBoot的自动配置和ComponentScan
第一点的话就是说就是通过SpringBootApplication注解里面的EableAotoConfiguration注解里面的AutoConfigurationImportSelector类来实现的,具体来说的话就是通过classLoader去获得classPath路径下面的META/INF下面的spring.factories文件中内容,然后我们查看这个文件的话其实也就能够以发现这个文件的内容就是通过key value的形式进行数据的存储然后就是获取这个里面的以。原创 2024-12-31 17:35:19 · 2784 阅读 · 1 评论 -
Spring源码分析之AOP-CreateProxy
在上一篇文章当中我们就是说明了实现AOP的基础知识以及@EnableAspectJAutoProxy的底层的实现这里的话我就不会再进行说明了,那么这篇文章的话我们主要就是说一下创建代理对象的整个过程,因为代理对象贯穿着Bean的生命周期以及循环依赖的问题1.对hashcode,equals方法以及一些特殊类进行处理之后2.就是要判断是否要进行暴露对象(因为我们都知道出现循环依赖的话会提前进行AOP)原创 2024-12-26 16:35:32 · 1513 阅读 · 0 评论 -
Spring源码分析之AOP-@EnableAspectJAutoProxy
这篇文章之前我们说了Springboot的启动流程,Bean对象怎么实现从无到有的一个过程还有一些接口的拓展的实现等等那么从这一篇文章开始的话我们就会开始说一说我们的常用的AOP它的底层实现原理所以大家一起加油加油!!!AOP的话大家其实就是特别熟悉就算没有使用过的话其实也听过,其实它就是面向切面编程,我的理解就是说将不同模块的公共的逻辑全部都提取出来然后进行一个统一的处理如:日志的打印,权限的管理,其实这么做的目的就是说其实就是减少代码的冗余我在下面写了一个Demo@Aspect@Component。原创 2024-12-24 16:59:22 · 2291 阅读 · 0 评论 -
Spring源码分析之后置处理器 BeanPostProcessor
后置处理器的实现类是很多的并且在Bean的整个的生命周期中都起到非常重要的作用: *InstantiationAwareBeanPostProcessor:这个就是在BeanDefinition进行实例化的时候 *AnnotationAwareAspectJAutoProxyCreator: 这个就是Bean实例化之后进行属性注入 * AbstractAutoProxyCreator:这个为符合条件的Bean自动创建AOP(面向切面编程)代理 Bean的创建主要就是第一就是说B原创 2024-12-20 16:52:03 · 2338 阅读 · 0 评论 -
Spring源码分析之ConfigurationClassPostProcessor
在通过Spring源码分析之容器Refresh()方法_spring源码中refresh()方法-优快云博客我们知到其中有一个步骤就是说会将满足条件的类注册为BeanDefinition然后放入到Spring容器中,这个主要就是存在于invokeBeanFactoryPostProcessors这个方法中进行的这个就是说具体是怎么实现的这篇文章就会进行说明1.通过 ConfigurationClassPostProcessor 把所有的配置类取出来进行解析2.那么配置类的标准就是说被修饰的就算是配置类。原创 2024-12-18 16:48:27 · 1944 阅读 · 0 评论 -
Spring源码分析之BeanFactory接口的解析
在我们的前两篇文章当中我们看完之后其实我们都会发现当我们进行相关的重要的行为的时候如我们看到的GetBean或者在Register方法的时候会出现BeanFactroy进行调用那么这个时候我们就会产生一个疑惑这个到底是什么为什么这么重要,在我没有说的时候我们从字面上进行一个简单的分析就是说这个是一个Bean工厂那么工厂不就是用来进行加工的那么加工肯定是需要原料以及加工流程的这么想的话其实已经把这个功能基本上都全部进行概括了,那么下面的话我们就来进行解说。原创 2024-12-17 17:51:52 · 1439 阅读 · 0 评论 -
Spring源码分析之循环依赖
通过前面对Bean的生命周期的学习,我们肯定以及了解之后,那么这个时候我们们经常就是会听到一个词那么就是循环依赖,这个就是我们这篇文章进行说明的我们都是知道有三级缓存存在可是在Bean的生命周期中我们只用到两个级别的缓存这个那么为什么会出三个缓存呢,这篇文章的就会代你们解决这个迷惑。原创 2024-12-12 16:56:44 · 2026 阅读 · 0 评论 -
Spring源码分析之Bean的属性填充以及初始化
在Spring源码分析之Bean的实例化(createBeanInstance())-优快云博客我们已经说了怎么实例化Bean对象,但是实例化这一步骤的话其实这个仅仅只是说整个生命周期的第一步(Bean的实例化)那么后面的话我们就是会说完这个Bean的生命周期也就是说是属性填充以及初始化,这个相对于实例化而言就是简单的多了这个方法其实就是进行依赖注入然后方式的话就是有两种一个就是byType还有一个就是byName然后这个里面涉及到的自动装配的话后面会说。原创 2024-12-11 16:47:12 · 1298 阅读 · 0 评论 -
Spring源码分析之Bean的实例化(createBeanInstance())
通过Spring源码分析之Bean的创建过程(createBean)-优快云博客我们可以知道如果没有动态代理以及循环依赖的前提之下的话那么一个普通的单例Bean的创建后就是实例化,属性填充,初始化这三个步骤那么这篇文章的话我们就先说一下实例化也就是doCreateBean方法里面的createBeanInstance()4.1.解析构造函数中的参数 :如果是getBean传入的参数那么就直接进行使用如果没有的话那么就会抓直接从缓存中得到如果参数完全解析成功的话那么直接使用进行解析以及准备好的参数。原创 2024-12-10 16:59:48 · 1555 阅读 · 0 评论 -
Spring源码分析之Bean的创建过程(createBean)
通过Spring源码分析之doGetBean()-优快云博客的学些我们知道了如何获得Bean但是我们看完就知道这个Bean是从缓存中获得的如果不能从缓存中获得的话那么就会进行创建,这个创建Bean的是一个很重要的一部分如果这一篇文章的话要好好学习。加油加油!!!!1.就是验证class是否被解析以及里面的重写的方法是否有效2.在没有doCreateBean()之前会给一个机会给后置处理器如果要进行动态代理(AOP)的时候那么就会通过。原创 2024-12-05 17:29:53 · 2141 阅读 · 0 评论 -
Spring源码分析之doGetBean()
在前面的文章当中我们发现当一个Bean对象不是抽象的是单例的而且还不是懒加载的时候就会这个Bean就会进行创建然后我们就会发现里面出现了getBean方法那么这篇文章的话我们就来讨论一下这个方法里面到底做了什么事情当我们想要getBean的话需要通过一些步骤如下:1.就是对BeanName进行一个统一的标准化的处理尤其是对于FactoryBean需要清除前缀&2.就是尝试从三级缓存。原创 2024-12-04 16:36:58 · 1569 阅读 · 0 评论 -
Spring源码分析之容器Refresh()方法
通过学习了上一篇文章Spring源码分析之容器的Register()以及Scan()-优快云博客这个时候我们就学习Spring容器中的refresh()方法这个方法我们在SpringBoot的启动流程中也看到过那么我们就好好研究一下这个方法到底是有什么作用做了哪些事情@Overridetry {//获得当前的线程// 开始记录上下文刷新的启动步骤// 准备上下文以进行刷新//这个就是进行一些准备工作// 初始化 BeanFactory。原创 2024-12-03 17:06:20 · 1569 阅读 · 0 评论 -
Spring源码分析之容器的Register()以及Scan()
通过Spring源码的分析之启动流程-优快云博客的学习我们知道Spring容器的启动的流程但是我们创建容器的时候有多种方式第一种就是我们在上一篇文章中写的那么还有其他的方式创建应用上下文(在这篇文章中我就以AnnotationConfigApplicationContext为例子)//这个就是通过配置类创建以及启动容器 管理和配置Spring应用中的bean//配置类的信息@ComponentScan("com.example") // 确保这里是你的包路径。原创 2024-11-29 10:40:15 · 1822 阅读 · 0 评论 -
Spring源码的分析之启动流程
这篇文章的话就是我个人通过一些技术博客以及自己写一些Demo测试获得的一些感悟但是由于本人的技术水平有限所以肯定就是会出现一些问题所以希望看这篇文章的时候如果发现错误的时候可以提出来然后我个人的话进行修改。原创 2024-11-27 17:39:45 · 1368 阅读 · 0 评论
分享