1、BeanFactory 接口与 ApplicationContext 接口
(1)spring 提供了两种类型的IOC容器实现、BeanFactory 和 ApplicationContext
(2) BeanFactory是最基本实现,只提供基本DI,面向的是Spring本身
(3)ApplicationContext 是BeanFactory的子接口,在BeanFactory基础上增加了很多高级特性,面向开发人员
2、ConfigurableApplicationContext与WebApplicationContext
(1)ApplicationContext 有ConfigurableApplicationContext 、WebApplicationContext两个子接口进行拓展
(2)ConfigurableApplicationContext 拓展了close() 、refresh() 方法、进行应用上下文的关闭和刷新,应用上下文就是容器抽象的一种实现如ApplicationContext 和 BeanFactory
(3) WebApplicationContext 专门为web应用准备,允许从Web根路径下的路径中完成初始化工作
3、常用容器实现(应用上下文)
(1)ClassPathXmlApplicationConxt 是最常用的容器实现、应用上下文、用于从类路径下加载配置文件
(2)FileSystemXmlApplicationContext : 用于从文件系统中加载配置文件
(3)AnnotationConfigApplicationContext: 用于注解方式加载配置