IOC思想以及在Spring中的实现

1、IOC容器

1.1、IOC思想

IOC:Inversion of Control,控制反转。

  • 获取资源的传统方式

自己做饭:买菜、洗菜、择菜、改到、炒菜,全过程参与,费时费力,必须清楚了解资源创建整个过程中的全部细节且熟练掌握。

在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。

  • 控制反转获取资源

点外卖:下单、等、吃、省时省力,不必关心资源创建过程的所有细节,拿来即食

反转了资源的获取方式——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器时如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本、提高了开发的效率。这种行为也称为查找的被动形式。

  • DI

DI:Dependency Injection,依赖注入。

DI 是 IOC 的另一种表述方式:即组件以一些预先定义好的方式(例如:setter 方法)接收来自于容器的资源注入。

DI 是对 IOC 的一种具体实现。

1.2、IOC容器在Spring中的实现

Spring 的 IOC 容器就是 IOC 思想的一种实现。IOC 容器中管理的组件也叫做bean(实体类)。在创建 bean 之前,首先需要创建 IOC 容器,将类的创建、销毁等过程交由 Spring 来实现,用户需要的时候就从 IOC 容器中取即可。Spring 提供了 IOC 容器的两种实现方式:

  • BeanFactory

这是 IOC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 本身,不提供给任何开发人员使用。

  • ApplicationContext

BeanFactory 的子接口,扩展了更多的功能。面向 Spring 的使用者,几乎所有场合都是用 ApplicationContext,而不是底层的 BeanFactory。

1.3、ApplicationContext的主要实现类

类型名简介
ClassPathXmlApplicationContext通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象
FileSystemXmlApplicationContext通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象
ConfigurableApplicationContextApplicationContext 的子接口,包含一些扩展方法 refresh() 和 close(),让 ApplicationContext 具有启动、关闭和刷新上下文的能力。
WebApplicationContext专门为 Web 应用程序准备,基于 Web 环境创建 IOC 容器对象,并将对象引入存入 ServletContext 域中。
  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值