IOC容器:Ioc—Inversion of Control,即“控制反转”,就是具有依赖注入功能的容器,是可以创建对象的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
IoC 的全称叫做 Inversion of Control,可翻译为为「控制反转」或「依赖倒置」,它主要包含了三个准则:
1、高层次的模块不应该依赖于低层次的模块,它们都应该依赖于抽象;
2、抽象不应该依赖于具体实现,具体实现应该依赖于抽象;
3、面向接口编程 而不要面向实现编程。
扩展资料
Spring 提供了许多 IOC 容器
的实现。比如 XmlBeanFactory,ClasspathXmlApplicationContext 等。其中 XmlBeanFactory 就 是针对最基本的IOC 容器的实现,这个 IOC 容器可以读取XML 文件定义的 BeanDefinition(XML 文件中对 bean 的描述)。
ApplicationContext 是 Spring 提供的一个高级的 IOC 容器,它除了能够提供 IOC 容器的基本功
能外,还为用户提供了以下的附加服务。
参考资料来源:百度百科-IOC
使用过 Spring 的同学应该都接触过 BeanFactory 和 ApplicationContext,其实它们就可以看做 Spring IoC 容器的具体表现形式,了解这两者的区别与联系对于我们理解和使用 IoC 容器是比较重要的。我们先来看一下 IoC 容器的接口设计图:
下面我们来对这张接口设计图做一下解析:
我们通过以上的接口设计图跟分析可以看出,整个 Spring IoC 容器就是以 BeanFactory 和 ApplicationContext 作为核心的。BeanFactory 定义了 IoC 容器的基本功能,而 ApplicationContext 体系则在 BeanFactory 基础上通过继承其他接口来实现高级容器特征。下面我们来看一下这两个体系的应用场景:
到此为止,我们大概了解了 IoC 容器的概念跟 Spring 中对于 IoC 容器的设计跟应用,之后我们要详细的分析 IoC 容器的初始化、依赖注入跟其他相关特征的设计与实现等。