@yulongsun
2018-06-24T15:13:39.000000Z
字数 1165
阅读 1254
Spring源码走读 - BeanFactory的类体系结构
Spring源码走读
1. BeanFactory核心体系结构图

2. 核心类
- 一级接口
- 二级接口
- HierarchicalBeanFactory //提供访问父容器的功能。
- ListableBeanFactory //提供获取Bean的功能。
- AutowireCapableBeanFactory //提供自动装配功能。
- 三级接口
- ConfigurableBeanFactory
//继承二级接口HierarchicalBeanFactory,并继承了外部接口SingletonBeanRegistry。
- 四级接口
- ConfigurableListableBeanFactory //继承了上述所有接口。
- 2个抽象类
- AbstractBeanFactory
//抽象类,实现了三级接口ConfigurableBeanFactory的大部分功能。
- AbstractAutowireCapableBeanFactory
//抽象类,继承了AbstractBeanFactory,并实现了二级接口AutowireCapableBeanFactory。
- 2个实现类
- DefaultListableBeanFactory
//继承了AbstractAutowireBeanFactory,并实现了最强大的四级接口ConfigurableListableBeanFactory。并实现了外来接口BeanDefinitionRegistry。
- XmlBeanFactory //扩展DefaultListableBeanFactory,提供XML解析功能。
3. 类源码详解
3.1 BeanFactory - IOC始祖

- 分析:
- getBean() //5个获取Bean的方法(Spring4.1 新增一个)
- 四个判断方法。
- 一个获取别名方法,一个获取类型方法。
3.2 HierarchicalBeanFactory - 分层的Bean工厂

- 分析:
- containsLocalFactory() //判断本地工厂是否包含Bean(忽略父工厂)。
- getParentBeanFactory() //返回Bean工厂的父工厂。体现分层思想。
3.3 ListableBeanFactory - 可列的Bean工厂

3.4 AutowireCapableBeanFactory - 自动装配的Bean工厂

3.5 ConfigurableBeanFactory

3.6 ConfigurableListableBeanFactory
3.7 AbstractBeanFactory

3.8 AbstractAutowireBeanFactory
3.9 DefaultListableBeanFactory

4. 工具类
BeanFactoryUtils
FactoryBeanRegistrySupport