applicationContext继承关系
首先可以看一张图
ListableBeanFactory 可列举的bean工厂
hierarchical 分层bean工厂
messageSource 国际化信息
//国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式。它要求从产品中抽离所有"地域"语言,国家/地区和文化相关的"元素"。换言之,应用程序的功能和代码设计考虑在不同地区运行的需要,其"代码"简化了不同本地版本的生产。开发这样的程序的过程,就称为国际化。
ApplicationEventPublisher 应用事件发布器,封装事件发布功能的接口。
ResourcePatternPesolver 加载多个资源加载器
EnvironmentCapable 环境接口
applicationContext的实现类
对于applicationContext的实现类,我们常用的三个
AnnotationConfigApplicationContext 加载注解配置类的ApplicationContext
ClassPathXmlApplicationContext 加载类路径下的xml的ApplicationContext
FileSystemXmlApplicationContext 加载磁盘路径下的xml的ApplicationContext
当然在springMVC中还有web相关的applicationContext
同样的也是一个注解的配置和一个xml的配置
applicationContext和beanFactory区别
我们可以很清晰的看到applicationContext在beanFactory的基础上对功能进行了极大的增强。
然后通过断点调试,我们还可以看到applicationContext内部还维护了一个beanFactory
所以二者之间既有继承又有融合
二者的bean对象的初始化时间也不同
beanFactory只有在第一次调用getbean方法时才会创建bean对象,而applicationContext则是在配置文件加载完毕后就创建了bean对象。