美文网首页springSpringFramework技术干货
Spring核心:IOC容器的实现(三)

Spring核心:IOC容器的实现(三)

作者: 迷途小沙弥 | 来源:发表于2017-07-18 10:20 被阅读71次

    ApplicationContext的那些事:

    在前面几章,我们已经知道ApplicationContext是在原始的IOC容器BeanFactory基础上,添加了许多高级特性,那么具体添加了哪些特性?

    ApplicationContext的接口关系:

    1、MessageSource:ApplicationContext扩展了MessageSource接口,提供了消息处理的功能(i18n或者国际化),同时,与HierarchicalMessageSource一起使用,它还能够处理嵌套的消息,这些是spring提供的处理消息的基本接口。

    2、ResourceLoader:访问资源。对不同地方得到Bean定义资源的统一抽象。这种抽象使用户程序可以灵活地定义Bean定义信息,尤其是从不同的I/O途径得到Bean定义信息。

    3、ApplicationEventPublisher:应用事件。继承了接口ApplicationEventPublisher,从而在ApplicationContext上下文中引入了事件机制。这些事件和Bean的生命周期的结合为Bean的管理提供了便利。

    总结区别:ApplicationContext与简单的BeanFactory相比,对它的使用是一种面向框架的使用风格(框架就是指的BeanFactory的框架体系)

    ApplicationContext容器的设计原理

    在ApplicationContext容器中,我们以常用的FileSystemXmlApplicationContext的实现为例来说明ApplicationContext容器的设计原理。

    因为----------------------ApplicationContext应用上下文的主要功能--------------AbstractXmlApplicationContext-----------实现

    所以----------------------FileSystemXmlApplicationContext---------------只需要实现和它自身设计相关的两个功能。

    1、如果应用直接使用FileSystemXMLApplicationContext--------实例化-------提供支持

    解释:通过构造函数实例化FileSystemContext应用上下文,而构造函数中的refrsh()方法-------------------->IOC容器启动的一系列复杂操作--------------对于不同的容器实现,启动IOC容器的操作都是类似的。

    2、怎样从文件系统中加载XML的Bean定义资源

    解释:通过传入资源(xml)文件的路径,通过调用FileSystemResource的构造函数,得到资源,通过这个过程,可以为在文件系统中读取以XML形式存在的BeanDefinition做准备----------注意------------不同的上下文对应着不同的读取Beandefinition的方式。

    相关文章

      网友评论

        本文标题:Spring核心:IOC容器的实现(三)

        本文链接:https://www.haomeiwen.com/subject/ssifkxtx.html