spring源码
文章平均质量分 77
jeanheo
这个作者很懒,什么都没留下…
展开
-
【Spring源码阅读】 DefaultListableBeanFactory继承结构讲解分析
在基于ClassPathXmlApplicationContext创建BeanFactory时,我们从代码里看到,创建的BeanFactory的类型是DefaultListableBeanFactory。下面我们来分析下DefaultListableBeanFactory的继承结构,以及基于这个结构下,每个父类接口的用途。具体UML类图实现如下:下面开始从顶层实现类开始,依次向下逐层分析:...原创 2018-12-27 12:49:51 · 1002 阅读 · 0 评论 -
【Spring源码阅读】Spring源码阅读环境搭建
阅读Spring源码,我们可以通过以下两种方式:直接在Idea/Eclipse上创建自己的java maven/gradle项目,导入Spring特定版本依赖Jar和源码,直接运行测试代码,逐步调试阅读从github直接获取Spring源码项目,基于Spring源码项目,创建自己的子模块,进行本地项目的Spring源码调试。对于方式一的好处是可以方便快捷地开始阅读Spring源码,但由于...原创 2018-12-23 12:22:17 · 478 阅读 · 0 评论 -
【Spring源码阅读】IOC核心容器基础和继承体系结构
BeanFactoryBeanFacotry作为Spring的根容器对象,提供了对Bean的基础操作功能,包括实例化、配置、管理Bean等。ApplicationContextApplicationContext对BeanFactory进行了进一步地封装,内置了BeanFacotry实例,不仅具备BeanFactory提供的所有功能,还提供了更丰富的配置管理BeanFacotry生命周期的能...原创 2018-12-23 12:23:49 · 351 阅读 · 0 评论 -
【Spring源码阅读】 Spring容器初始化流程
以下面测试代码为例:public class BaseTest { public static void main(String[] args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("config.xml"); TestBean test...原创 2018-12-23 12:25:33 · 463 阅读 · 1 评论 -
【Spring源码阅读】BeanDefinition原理与加载流程
BeanDefinition接口定义及其相关子类实现在Spring容器初始化过程中,Spring会将配置文件中配置的Java类封装成一个个BeanDefinition。BeanDefinition存储了具体代表Bean的类,并通过实现了AttributeAccessor接口定义了读写属性配置的相关方法。在基于xml配置Spring容器中,我们为某个Bean配置了具体的属性值,这些都根据name...原创 2018-12-23 14:34:40 · 1493 阅读 · 0 评论 -
【Spring源码阅读】 preInstantiateSingletons方法分析,单例Bean获取/实例化流程
在初始化ClassPathXmlApplicatonContext过程中,核心初始化逻辑在AbstractApplicationContext的refresh函数中:public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { ...原创 2018-12-23 17:43:53 · 4457 阅读 · 2 评论 -
【Spring源码阅读】populateBean实现 依赖注入源码解析
在完成Bean实例化后,Spring容器会给这个Bean注入相关的依赖Bean,在源码中,这一步通过类AbstractAutowireCapableBeanFactory中的populateBean方法完成。测试代码下面开始进入源码分析之前,先基于以下实例进行:// 基础属性类public class Student { private String name; pub...原创 2018-12-23 19:48:58 · 10313 阅读 · 3 评论