《Spring源码剖析》系列
文章平均质量分 83
Spring源码系列
一只IT攻城狮
一个喜欢诗和远方的程序媛
展开
-
Spring框架中的自动装配
Spring框架中的自动装配(Autowiring)是通过依赖注入(Dependency Injection, DI)来自动解决Bean之间的依赖关系。自动装配的主要方式包括基于类型、基于名称、基于构造函数等。原创 2024-07-09 09:23:15 · 334 阅读 · 0 评论 -
bean初始化生命周期回调的3种方式
在Spring框架中,Bean的生命周期可以通过多种方式进行管理和回调。原创 2024-07-09 09:09:46 · 377 阅读 · 0 评论 -
Spring容器的启动流程
(本文基于 Spring 的 5.1.6.RELEASE 版本)Spring的启动流程可以归纳为三个步骤:1、初始化Spring容器,注册内置的BeanPostProcessor的BeanDefinition到容器中2、将配置类的BeanDefinition注册到容器中3、调用refresh()方法刷新容器因为是基于 java-config 技术分析源码,所以这里的入口是 AnnotationConfigApplicationContext ,如果是使用 xml 分析,那么入口即为 ClassPa原创 2021-03-01 18:17:08 · 3314 阅读 · 1 评论 -
gradle编译spring源码
一、gradle的下载spring本身是gradle管理,所以先下载gradle。官网的下载页面 https://services.gradle.org/distributions/如下图所示,我们选择想要安装的发布版本,gradle-x.x-bin.zip是需要下载的安装发布版,gradle-x.x-src.zip是源码,gradle-x.x-all.zip则是下载全部的文件。不建议下载比较新的gradle版本,使用较稳定的版本就好。我本机使用版本为:gradle-6.0.1,下载gradle-原创 2021-02-08 18:35:17 · 2061 阅读 · 5 评论 -
spring源码系列一 ClassPathXmlApplicationContext分析
Spring容器最基本的接口就是BeanFactory, 负责配置,创建和管理bean。我们通常不直接使用BeanFactory接口,而是使用其子接口接口ApplicationContext常用实现类是FileSystemXmlApplicationContext和等。后者最常用。ApplicationContext的实例就是一个容器,Spring容器的意义在于创建和初始化类对象,管理类的依赖关系。原创 2021-04-02 18:41:21 · 165 阅读 · 1 评论 -
spring源码系列二-refresh()
跟完一遍源码大概了解了Spring的容器中Bean生命周期简单概括如下:对象创建:1、解析xml读取配置的Bean,【@Bean注解,或者Java代码BeanDefinitionBuilder中读取Bean的定义】2、java 反射机制实例化Bean对象;3、设置Bean的属性;4、注入Bean实现了的Aware的依赖(BeanNameAware,BeanClassLoaderAware,BeanFactoryAware,ApplicationContextAware等);原创 2021-04-16 14:35:27 · 219 阅读 · 0 评论 -
spring源码系列三-obtainFreshBeanFactory()
1.spring源码中refresh()方法包含的13个主要的方法。obtainFreshBeanFactory()方法为其中之一显得尤为重要。2.obtainFreshBeanFactory()方法主要作用:是创建BeanFactory对象,并解析xml封装成BeanDefinition对象。3.obtainFreshBeanFactory()内部方法调用链比较长,如下:行文中均以比较重要的方法代码片段为例,有些次要方法没有详细展开。原创 2021-04-02 19:49:53 · 428 阅读 · 0 评论