Spring为ApplicationContext类型容器提供了以下几个常用的实现:
- FileSystemXmlApplicationContext 从文件系统加载bean定义以及相关资源的ApplicationContext实现。
- ClassPathXmlApplicationContext 从Classpath加载bean定义以及相关资源的ApplicationContext实现。
- XmlWebApplicationContext Spring提供的用于Web应用程序的ApplicationContext实现。
如下是BeanFactory和ApplicationContext继承关系图
可以看出,ApplicationContext区别于BeanFactory的特性有:
- 统一资源加载策略(ResourceLoader & ResourcePatternResolver)
- 国际化信息支持(MessageSource)
- 容器内部事件发布(ApplicationEventPublisher)