从源码看Spring中IOC容器的实现(一):接口体系

栏目: Java · 发布时间: 7年前

内容简介:Spring的IOC容器有两条主线:话不多说,直接上图:上图分别是BeanFactory和ApplicationContext的接口体系,在每个接口(或抽象类,实现类)旁都标注了该类的作用

Spring的IOC容器有两条主线: BeanFactoryApplicationContext :

  • BeanFactory:简单容器系列,只实现IOC容器的基本功能
  • ApplicationContext:容器的高级形态,在BeanFactory的基础上,增加了许多面向框架的特性,并对应用环境做了适配.

BeanFactory与ApplicationContext接口体系

话不多说,直接上图:

从源码看Spring中IOC容器的实现(一):接口体系
从源码看Spring中IOC容器的实现(一):接口体系

上图分别是BeanFactory和ApplicationContext的接口体系,在每个接口(或抽象类,实现类)旁都标注了该类的作用

是不是看不过来?没关系,我们慢慢分析.

IOC容器的设计主线

BeanFactory作为一个最基本的接口类出现在Spring的IOC容器体系中,为IOC容器的具体实现制定基本的功能规范,体现了Spring为提供给用户使用的IOC容器所设定的最基本的功能规范。包括Bean的获取以及一些类型判断等功能.

从源码看Spring中IOC容器的实现(一):接口体系
  • 从BeanFactory的类继承图中来看其基本功能的定义,在IOC容器的设计中包括两条设计主线:

1. BeanFactory设计路径

从接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory,是一条主要的BeanFactory设计路径。

从源码看Spring中IOC容器的实现(一):接口体系

在这条设计路径中,BeanFactory接口定义了基本的IOC容器的规范,包括了getBean()这样的IOC容器的基本方法。而HierarchicalBeanFactory接口在继承了BeanFactory的基本接口之后,增加了getParentBeanFactory(),使BeanFactory具备了双亲IOC容器的管理功能。在ConfigurableBeanFactory中主要定义对BeanFactory的配置功能,比如设置双亲容器,配置Bean后置处理器等。通过这些接口设计的叠加,定义了BeanFactory就是简单IOC容器的基本功能。

这里涉及的是主要接口关系,而具体的IOC容器都是在这个接口体系下实现的,比如我们熟知的DefaultListableBeanFactory,这个基本IOC容器的实现就是实现了ConfigurableBeanFactory,从而成为一个简单IOC容器的实现。

从源码看Spring中IOC容器的实现(一):接口体系

2. ApplicationContext为核心的接口设计

第二条设计主线,是以ApplicationContext为核心的接口设计。

BeanFactory--》ListableBeanFactory--》ApplicationContext--》ConfigurableApplicationContext.

在这个接口体系中,ListableBeanFactory和HierarchicalBeanFactory两个接口连接Beanfactory定义和ApplicationContext定义。

从源码看Spring中IOC容器的实现(一):接口体系

在ListableBeanFactory中,细化了许多BeanFactory的接口功能。而ApplicationContext通过继承MessageSource、ResourceLoader、ApplicationEventPublisher接口,在BeanFactory简单容器的基础上添加了许多对高级容器的特性的支持。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

当下的冲击

当下的冲击

道格拉斯•洛西科夫 (Douglas Rushkoff) / 孙浩 赵晖 / 中信出版社 / 2013-10-1 / 59.00元

这是一个并不符合人本能的社会…… 为什么我们不应该更注重生活的质量而非速度? 为什么我们不用面对面的交流代替冷冰冰电脑屏幕上的文字代码? 为什么我们不可以选择一个虽然有缺陷但有血有肉的人类社会,而非一个虽趋于完美但冷漠的数字世界? 在当下的冲击面前,你正变得越来越弱智:你没有了自己的独特空间,你过多地相信真人秀节目,你成了数字化产品的奴隶并得了数字化精神病,你的生物钟也被打......一起来看看 《当下的冲击》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具