1. ApplicationContext
ApplicationContext是spring的一个核心接口或容器,允许容器通过应用程序上下文环境创建、获取、管理bean。
ApplicationContext接口继承了ListableBeanFactory,HierarchicalBeanFactory,MessageSource,ApplicationEventPublisher,ResourcePatternResolver等接口,所以,也具备相应接口的能力。
- ListableBeanFactory:用于访问应用程序组件的Bean工厂方法。通过这个接口,我们可以获取多个 Bean;
- HierarchicalBeanFactory:通过本接口,可在应用中起多个 BeanFactory,然后可以通过配置将各个 BeanFactory 设置为父子关系;
- MessageSource:解析消息的能力,支持国际化;
- ApplicationEventPublisher:向注册监听器发布事件的能力;
- ResourcePatternResolver:提供将locationPattern解析为资源对象的能力。
2. 启动Spring容器的三种方式
ps: 使用maven管理项目时,可以在dependencies里面添加以下依赖就可以使用ApplicationContext接口。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.11.RELEASE</version>
</dependency>
我们可以通过获取ApplicationContext,来启动Spring容器。
通过ApplicationContext的继承结构图,我们可以知道,我们有三种方式构建ApplicationContext(图中标绿的类)。
- ClassPathXmlApplicationContext
独立的XML应用程序上下文,从类路径中获取上下文定义文件,将普通路径解释为包含包路径的类路径资源名(例如,“classpath:application.xml”)。 - FileSystemXmlApplicationContext
FileSystemXmlApplicationContext 的构造函数需要一个 xml 配置文件在系统中的路径,其他和 ClassPathXmlApplicationContext 基本上一样。 - AnnotationConfigApplicationContext