学习《Spring源码深度解析》此书做的笔记。
BeanFactory系列类
Bean工厂这些接口或实现类,就是Bean容器的定义及实现。靠BeanDefinitionReader这些接口或实现类读取配置Bean的资源并加载到BeanFactory中。
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的各种方法。