Spring源码阅读-01Spring常用类简介

51 阅读2分钟

学习《Spring源码深度解析》此书做的笔记。

BeanFactory系列类

Bean工厂这些接口或实现类,就是Bean容器的定义及实现。靠BeanDefinitionReader这些接口或实现类读取配置Bean的资源并加载到BeanFactory中。 UML类图-在掘金中会显示出来

AliasRegistry

定义对alias的简单增删改等操作。

SimpleAliasRegistry

主要使用map作为alias的缓存,并对接口AliasRegistry进行实现。

SingletonBeanRegistry

定义对单例的注册及获取。

BeanFactory

定义获取bean及bean的各种属性。

BeanDefinitionRegistry

定义对BeanDefinition的各种增删改操作。

DefaultSingletonBeanRegistry

对接口SingletonBeanRegistry各函数的实现。

HierarchicalBeanFactory

继承BeanFactory,也就是在BeanFactory定义的功能的基础上增加了对parentFactory的支持。

ListableBeanFactory

根据各种条件获取bean的配置清单。

FactoryBeanRegistrySupport

在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊处理功能。

ConfigurableBeanFactory

提供配置Factory的各种方法。

AbstractBeanFactory

综合 FactoryBeanRegistrySupport和 ConfigurableBeanFactory的功能。

AutowireCapableBeanFactory

提供创建bean、自动注入、初始化以及应用bean的后处理器。

AbstractAutowireCapableBeanFactory

综合AbstractBeanFactory并对接口Autowire Capable BeanFactory进行实现。

ConfigurableListableBeanFactory

BeanFactory 配置清单,指定忽略类型及接口等。

DefaultListableBeanFactory

综合上面所有功能,主要是对Bean注册后的处理。核心的BeanFactory

BeanDefinitionReader系列类

这些接口或实现类定义并实现读取配置Bean的资源并加载到BeanFactory 中。

整个XML配置文件读取的大致流程:

(1)通过继承自AbstractBeanDefinitionReader中的方法,来使用ResourLoader将资源文件路径转换为对应的Resource文件。

(2)通过DocumentLoader对Resource文件进行转换,将Resource文件转换为Document文件。

(3)通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Document进行解析,并使用BeanDefinitionParserDelegate对Element进行解析。

BeanDefinitionReader

主要定义资源文件读取并转换为BeanDefinition的各个功能。

EnvironmentCapable

定义获取Environment方法。

DocumentLoader

定义从资源文件加载到转换为Document的功能。

AbstractBeanDefinitionReader

对EnvironmentCapable、BeanDefinitionReader类定义的功能进行实现。

BeanDefinitionDocumentReader

定义读取Docuemnt并注册BeanDefinition功能。

BeanDefinitionParserDelegate

定义解析Element的各种方法。