个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~
个人主页:.29.的博客
学习社区:进去逛一逛~
一文掌握IOC
- 一、IOC
- 二、IOC容器的实现
- BeanFactory 接口 :
- ApplicationContext 接口 :
一、IOC
-
IOC:Inversion of Control,翻译过来是
反转控制
。 -
DI:Dependency Injection,翻译过来是
依赖注入
。 -
IOC 就是一种反转控制的思想, 而 DI 是对 IOC 的一种具体实现。
反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。这种行为也称为查找的被动形式。
二、IOC容器的实现
Spring提供了实现IOC容器的两种方式:(两个接口)
BeanFactory
ApplicationContext
BeanFactory 接口 :
BeanFactory 是 IOC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给开发人员使用。
ApplicationContext 接口 :
BeanFactory 的子接口,提供了更多高级特性。面向 Spring 的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。
ApplicationContext接口中有两个主要的实现类:
ClassPathXmlApplicationContext
FileSystemXmlApplicationContext
类型名 | 功能 |
---|---|
ClassPathXmlApplicationContext | 通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象 |
FileSystemXmlApplicationContext | 通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象 |