【Spring源码阅读】IOC核心容器基础和继承体系结构

BeanFactory

BeanFacotry作为Spring的根容器对象,提供了对Bean的基础操作功能,包括实例化、配置、管理Bean等。

ApplicationContext

ApplicationContext对BeanFactory进行了进一步地封装,内置了BeanFacotry实例,不仅具备BeanFactory提供的所有功能,还提供了更丰富的配置管理BeanFacotry生命周期的能力。除此之外,ApplicationContext还额外提供了Spring事件管理机制,国际化/本地资源访问等能力

总体类图如下所示:

image
从ClassPathXmlApplicationContext实现类分析继承关系,来梳理相关类和接口功能,具体如下:

  1. ClassPathXmlApplicationContext:基于类路径下xml文件配置的Spring容器上下文。定义了根据资源路径创建Spring容器的相关构造函数入口。
  2. AbstractXmlApplicationContext:基于xml配置的针对ApplicationContext的基础实现类,封装了初始化XmlBeanDefinitionReader来加载BeanDefinitions的逻辑
  3. AbstractRefreshableConfigApplicationContext:封装了根据路径处理xml文件的逻辑,主要用来供子类如FileSystemXmlApplicationContext,ClassPathXmlApplicationContext等调用解析资源路径
  4. AbstractRefreshableApplicationContext:ApplicationContext的基础实现类封装了创建、初始化、刷新内置BeanFactory的相关功能逻辑,定义了loadBeanDefinitions抽象方法,供子类实现根据不同的方式加载BeanDefinitions,实现了createBeanFactoryrefreshBeanFactoryhasBeanFactorygetBeanFactorycloseBeanFactory等相关逻辑对BeanFactory的生命周期进行管理(具体创建、刷新核心逻辑由夫类AbstractApplicationContext实现),提供了customizeBeanFactory函数对内置的beanFactory进行进一步的定制
  5. AbstractApplicationContext:ApplicationContext的基础实现,提供了refresh方法实现创建BeanFacotry的核心逻辑,具体实现内容可参照refresh函数:
public void refresh() 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值