【每天进步一点点】图解BeanFactory和ApplicationContext

上图是ApplicationContext的继承体系。

    我们都知道在java里接口定义了功能,而ApplicationContext他集成了很多的接口,这说明他具备这些接口的功能,那么从这个图上我们可以很简单的得出接口,ApplicationContextBeanFactory的关系是什么,ApplicationContext具备BeanFacory全部的功能,并且额外还具备其他更多的功能,比如资源的获取,事件的广播等。

    现在我们来分别解释下图中各个接口的功能。

BeanFactory:bean工厂,spring容器里我们注册的bean都在这里面,包括xml注册和注解注册,我们可以通过该工厂提供的方法来获取这些bean。

ResourceLoader: 加载资源,比如xml文件和配置文件

ResourcePatternResolver:基础了ResourceLoader并且加强了获取资源的能力,通过通配符获取资源

MessageSource: 提供了多语言的支持

ApplicationEventPublisher:提供了事件发布的功能

EnvironmentCapable: 类型检查

HierarchicalBeanFactory:提供父容器的访问功能.至于父容器的设置,需要找ConfigurableBeanFactory的setParentBeanFactory(接口把设置跟获取给拆开了!).
ListableBeanFactory:判断工厂是否包括指定名字的bean的定义和获取bean定义的数量


    这就是BeanFacoryApplicationContext的区别。

相关文章: