Spring源码深度解析-1、Spring核心类简单介绍

在更新JAVA基础源码学习的同时,也有必要把Spring抓一抓,以前对于spring的程度仅在于使用,以及一点IOC/AOP的概念,具体深层的了解不是很深入,每次看了一点源码就看不下去,然后一转眼都忘记看了啥。
所以这次专门买了书,来细细品味下Spring。
希望能从这一波学习中加强自己对spring更深的认识。

对Spring源码的正式深入学习之前,有必要了解下Spring中最核心的两个类:

1、DefaultListableBeanFactory
DefaultListableBeanFactory 是Spring整个bean加载的核心部分。
XmlBeanFactory继承自Spring,是在配置文件中配置的bean 的加载实现,使用了自定义的BeanDefinitionReader.
下面看下容器加载类图:
在这里插入图片描述

2、XmlBenDefinitionReader
XmlBenDefinitionReader非常重要,因为spring的很多配置信息通过xml读取,因此我们可以从它这里梳理一下资源的读取,解析和注册的大致流程,

类图放下:
在这里插入图片描述

先看下各个类用来干什么?
ResourceLoader:资源加载器
BeanDefinitionReader:定义从ResourceLoader读取资源文件转换成BeanDefinition的功能
EnvironmentCapable:定义获取Environment的方法
DocumentLoader:定义从资源文件转换到Document对象的方法
AbstractBeanDefinitionReader:对EnvironmentCapable、BeanDefinitionReader定义的功能进行实现
BeanDefinitionDocumentReader:定义读取Document并注册BeanDefinition的功能。
BeanDefinitionParserDelegate:定义解析Element的各种方法。

1、通过继承自AbstractBeanDefinitionReader的方法,来使用ResourceLoader加载资源转换为对应的Resource对象。
2、通过DocumentLoader把Resource对象转为Document对象
3、通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader来解析Document对象,并使用BeanDefinitionParserDelegate来解析。

猜你喜欢

转载自blog.csdn.net/qq_28605513/article/details/84845995