Spring中的控制反转(IOC)与依赖注入(DI)的理解

Spring框架 控制反转(IOC)与依赖注入(DI)

我认为最有助于理解IOC与DI的解释是胡小国的这篇文章:浅谈控制反转与依赖注入
而本人才疏学浅,就简单记录一下我对IOC与DI的理解

一、控制反转(IOC)

我就不说定义了,直接谈谈理解。
控制反转是对类与类之间解耦(减少两类之间关系)的一种思想。控制的意思就是在一个类A中使用另一个类B的内容,正常情况下是在A中创建B的对象(new),此时控制B类创建的是A类。反转是指A类将创建B类的控制权交给外部去处理,具体获取的方法、对象被获取时的状态由配置文件(Spring中是XML文件)来指定。也就是将控制反转了。

二、依赖注入(DI)

依赖注入是控制反转的一种具体实现方法。将A类对B类的控制权交给第三方(即IOC容器)

三.使用控制反转的好处:

在正常情况下,想在A类用B、C、D类时,需要在A类中进行创建相应对象(如图1)。这样做时A类与B、C、D类的之间耦合程度高。假设B类出现问题,那么就需要在A种对相应代码进行修改。
使用控制反转的思想后,将B、C、D类在IOC容器中配置到A类(如图2)。此时如果B类出现问题,并不需要对A类进行修改。

图1:在这里插入图片描述

图2:
在这里插入图片描述

四、控制反转在Spring框架中的应用

在Spring中所有的类都会在Spring容器中登记,告诉Spring你是个什么样的类,你需要什么类,然后Spring会在系统运行到适当的时候,把你要的类主动给你,同时也把你交给其他需要你的类。所有的类的创建、销毁都由 Spring来控制,也就是说控制对象生存周期的不再是引用它的对象,而是Spring。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值