IOC概念和原理
Inversion of Control,翻译过来是反转控制。而反转控制又是什么呢?控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理。而我们使用IOC就是为了耦合度降低。
Spring 提供了 IOC 容器的两种实现方式:
(1)BeanFactory
这是 IOC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给开发人员使用。
(2)ApplicationContext
BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用,加载配置文件时候就会把在配置文件对象进行创建。这个接口经常被使用,所以可以着重了解一下这个接口。
1)ApplicationContext的常用类
1>ClassPathXmlApplicationContext:通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象;
2>FileSystemXmlApplicationContext:通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象;
3>ConfigurableApplicationContext:ApplicationContext 的子接口,包含一些扩展方法 refresh() 和 close() ,让 ApplicationContext 具有启动、关闭和刷新上下文的能力;
4>WebApplicationContext:专门为 Web 应用准备,基于 Web 环境创建 IOC 容器对象,并将对象引入存入 ServletContext 域中;
2)创建ApplicationContext接口
创建ApplicationContext接口实例通常采用两种方法,一个是通过ClassPathXmlApplicationContext创建,一个则是通FileSystemXmlApplicationContext创建(不推荐使用)