2.SpringIOC容器
[toc]
1. Spring IOC容器
1.1 IOC和DI
- IOC(Inversion of Control):反转控制
- DI(Dependency Injection):依赖注入
- IOC 就是一种反转控制的思想, 而DI是对IOC的一种具体实现。
1.1.1 IOC(Inversion of Control):反转控制
- 即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring)
1.1.2 DI(Dependency Injection):依赖注入
- spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.
1.1.3 IOC容器在Spring中的实现
- 前提: ==Spring中有IOC思想, IOC思想必须基于 IOC容器来完成, 而IOC容器在最底层实质上就是一个对象工厂。==
- 在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。
Spring提供了IOC容器的两种实现方式
- **
BeanFactory
**:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。 - **
ApplicationContext
**:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。
- **
1.1.4 ApplicationContext的主要实现类
ConfigurableApplicationContext
:是ApplicationContext的子接口,包含一些扩展方法**refresh()和close()
**:让ApplicationContext具有启动、关闭和刷新上下文的能力。- **
ClassPathXmlApplicationContext
:对应类路径下
**的XML格式的配置文件- **
FileSystemXmlApplicationContext
:对应文件系统
**中的XML格式的配置文件- 在初始化时就创建单例的bean,也可以通过**
配置的方式指定创建的Bean是多实例的
**。WebApplicationContext
: 专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作
1.1.5 容器的结构图
☆
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jilfoyle!