Spring5.x之XmlBeanFactory源码解析-XmlBeanFactory整体概览(一)

1、XmlBeanFactory继承类图

2、XmlBeanFactory继承树接口和类说明

AliasRegistrγ : 定义对alias的简单增删改查等操作
SimpleAliasRegistry : 使用map作为alias的缓存,并对接口AliasRegistry进行实现
BeanDefinitionRegistry : 定义对 BeanDefinition 的各种增删改操作

SingletonBeanRegistry :定义对单例的注册及获取
DefauItSingletonBeanRegistry :对接口SingletonBeanRegistry各函数的实现,继承SimpleAliasRegistry对alias的简单增删改查等操作
FactoryBeanRegistrySupport :在DefaultSingletonBeanRegistry基础上增加了对FactoryBean的特殊处理功能

BeanFactory :定义获取bean及bean的各种属性 。
ListableBeanFactory :根据各种条件获取bean的配直清单
AutowireCapableBeanFactory :提供创建bean、自动注入、初始化以及应用bean的后处理器
HierarchicalBeanFactory :继承BeanFactory ,也就是在BeanFactory定义的功能的基础上增加了对parentFactory的支持
ConfigurableBeanFactory :综合HierarchicalBeanFactory和SingletonBeanRegistry的功能,提供配置BeanFactory的各种方法

AbstractBeanFactory :综合FactoryBeanRegistrySupport和ConfigurableBeanFactory的功能

AbstractAutowireCapableBeanFactory :综合AbstractBeanFactory并对接口AutowireCapableBeanFactory进行实现

ConfigurableListableBeanFactory : 综合ConfigurableBeanFactory、ListableBeanFactory、AbstractAutowireCapableBeanFactory,Beanfactory配置清单,指定忽略类型及接口等

DefaultListableBeanFactory : 综合上面所有功能,主要是对bean注册后的处理

XmlBeanFactory:继承DefaultListableBeanFactory,从XML文件中读取bean配置

3、BeanDefinition继承类图

4、XmlBeanDefinitionReader继承类图

5、XmlBeanDefinitionReader继承树接口和类说明

EnvironmentCapable :定义获取Environment方法 
BeanDefinitionReader :主要定义资源文件读取并转换为BeanDefinition的各个功能
AbstractBeanDefinitionReader :对EnvironmentCapable、BeanDefinitionReader接口定义的功能进行实现

ResourceLoader :定义资源加载器,主要应用于根据给定的资源文件地址返回对应的Resource
DocumentLoader :定义从资源文件加载到转换为Document的功能
BeanDefinitionDocumentReader:定义读取Docuemnt并注册BeanDefinition功能
BeanDefinitionParserDelegate :定义解析Element的各种方法 

6、XmlBeanDefinitionReader读取XML资源文件流程

(1)通过继承自AbstractBeanDefinitionReader中的方法,使用ResourLoader将资源文件路径转换为对应的Resource
(2)通过DocumentLoader将Resource转换为Document
(3)通过实现接口BeanDefinitionDocumentReader的DefaultBeanDefinitionDocumentReader类对Document进行解析,并使用BeanDefinitionParserDelegate对Element进行解析

7、XmlBeanFactory加载bean时序图

XmlBeanFactory中持有XmlBeanDefinitionReader引用,用于读取 Spring的XML配置文件并解析出bean。BeanDefinition是XML配置文件中bean元素在Spring容器中内部表现形式。XmlBeanFactory实例化及使用XmlBeanDefinitionReader加载XML配置文件时序图如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值