2.4Spring的结构组成

2.4.2核心类介绍
1.DefaultListableBeanFactory
AliasRegistry:定义对Alias的简单增删改查操作。
SimpleAliasRegistry:只要使用map作为alias的缓存。并实现AliasRegistry接口。
SingletonBeanRegistry:定义对单例的注册及获取。
BeanFactory:定义获取bean及bean的各种属性。
DefaultSingletonBeanRegistry:对接口SingletonRegistry各函数的实现。
HierarchicalBeanFactory:继承了BeanFactory,也就是在BeanFactory的基础上增加了对ParentFactory的支持。
BeanDefinitionRegistry:继承了AliasRegistry,定义了BeanDefinitionHolder各种增删改查操作。
FactoryBeanRegistrySupport:在DefaultSingletonBeanRegistry基础上增加了FactoryBean的特殊处理。
ConfigurableBeanFactory:提供配置Factory的各种方法。
ListableBeanFactory:根据各种条件获取bean的配置清单。
AbstractBeanFactory:综合FactoryBeanRegistry和ConfigurableBeanFactory的功能。
AutowireCapableBeanFactory:提供创建Bean、主动注入、初始化以及应用bean的后处理。
AbstractAutowiredCapableBeanFactory:综合AbstractBeanFactory并对接口AutowiredCapableBeanFactory进行实现。
ConfigurableListableBeanFactory:beanFactory配置清单,指定忽略类型及接口。
DefaultListableBeanFactory:综合上面所有功能,主要是对bean注册后处理。
XmlBeanFactory对DefaultListableBeanFactory进行了拓展,拓展了主要是从XML文档中读取BeanDefinition(使用XmlBeanDefinitionReader属性对资源进行读取、注册)。而对于注册及获取bean都是从父类DefaultListableFactory继承的方法去实现。
2.XmlBeanDefinitionReader
定义了XML配置文件的读取、注册。
ResourceLoader:定义资源加载器,主要应用于给定资源文件地址返回对应Resource
BeanDefinitionReader:主要定义资源文件读取并转换为BeanDedifintion的各个功能。
EnvironmentCapable:定义获取Environment方法。
DocumentLoader:定义加载资源文件并转换为Document对象。
AbstractBeanDefinitionReader:对BeanDefinitionReader、EnvironmentCapable接口进行实现。
BeanDefinitionDocumentReader:定义读取Document并注册BeanDefinition功能。
BeanDefinitionParseDelegate:定义解析Element的各种方法。
XML读取配置文件的流程:
1)通过继承AbstractBeanDefinitionReader读取配置文件并转换为Resource对象
2)通过DocumentLoader对Resource对象进行转换,将Resource对象转换为Document对象
3)通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocument-Reader的类对Document进行解析,并使用BeanDefinitionParseDelegate对Element进行解析。




posted @ 2021-01-12 17:24  _Shing  阅读(219)  评论(0)    收藏  举报