分析spring源码第二篇:XmlBeanDefinitionReader

本文详细介绍了Spring框架中XmlBeanDefinitionReader的结构和实现原理。该组件负责从XML配置文件中读取bean定义,并将其注册到Spring容器中。文章通过层次结构图展示了其继承关系及其关键组成部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XmlBeanFactory的实现继承了DefaultListableBeanFactory,DefaultListableBeanFactory是整个Spring的bean加载的核心部分是Spring注册和加载bean的默认实现。XmlBeanFactory与DefaultListableBeanFactory不同的地方就是XmlBeanFactory使用了XmlBeanDefinitionReader读取器,下面分析下XmlBeanDefinitionReader的结构和实现原理。

XmlBeanDefinitionReader的结构层次图和相关类图:

32f64c52b8283ef77e902e125f4ae346745.jpg

6d606d9fc9e862da90a480ec2db5a8b4cc4.jpg

  1. BeanDefinitionReader  bena定义读取器,主要定义了读取Resource资源并转化成beanDefinition的接口。

  2. EnvironmentCapable  定义获取Environment的接口。

  3. AbstractBeanDefinitionReader 抽象类,实现了BeanDefinitionReader,EnvironmentCapable接口。(使用了resourceLoader资源加载器,它主要用于给定资源地址返回对应的resource的接口,文件形式: "file:","classpath:" ,"war:", "jar:" 等。)

  4. XmlBeanDefinitionReader 继承了 AbstractBeanDefinitionReader。(使用了DocumentLoader和BeanDefinitionDocumentReader。DocumentLoader定义了根据resource转化成document的接口,BeanDefinitionDocumentReader 定义了根据document注册BeanDefinition的接口)

  5. DefaultBeanDefinitionDocumentReader是BeanDefinitionDocumentReader的实现(使用了BeanDefinitionParserDelegate他定义了解析document的各种方法)

可以整出XmlBeanDefinitionReader读取xml的大致流程如下:

a0acc90aff838a3ebac2389b7e347c09992.jpg

 

转载于:https://my.oschina.net/u/3209651/blog/1922492

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值