​对spring的IOC和DI的理解​

1、IOC和DI的关系

ioc即:(控制反转)inversion of control

DI即:(依赖注入)Dependency Injection

两者含义相同都是 Spring 框架的核心概念,只不过这两个称呼是从两个角度描述的同一个概念。其实IOC是实现DI(依赖注入)的一种方式。ioc就是容器,di就是注入这一行为,那么di确实就是ioc的具体功能的实现。而ioc则是di发挥的平台和空间。从某个角度来说他们是可以画等号滴,因为毕竟他们是配合使用的。

2、IOC是什么

IoC 是一种思想,不是什么技术在使用Spring框架后,对象的实例不在由调用者来创建,而是由Spring容器来创建,Spring容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。这样,控制权由应用代码转移到了Spring容器,控制权发生了反转,(这就是将控制权由自己交给了别人的行为就叫控制反转(IoC),使用的方法就是依赖注入(DI))这就是控制反转。 就是把本来在类内部控制的对象,反转到类外部进行创建后注入,不再由类本身镜像控制,这就是IOC的本质*即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。*

2.1 如何理解好IOC

它的基本思想是将对象的创建、销毁、依赖关系的维护等控制权从程序代码中转移出去,交由容器来负责管理。在 Spring 中,IoC 容器是负责管理对象之间依赖关系的容器,它负责创建对象、维护对象之间的关系,并在需要时注入依赖。

●控制双方是谁,控制什么

传统方法:类中方法,属性的使用,需要使用者在对象内部创建new一个对象,是主动去创建依赖对象。

在使用Spring框架后,由Spring容器来创建,而IOC就是容器,来控制创建对象。不再由调用者的程序代码直接控制。

主控方:Spring容器(IOC)

被控方:外部资源获取

●什么是反转,反转什么

传统:由我们自己在对象中主动控制去直接获取依赖对象,也就是正转。

反转:*即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。*

就是获取对象的方式反转了,反转的是资源的控制权。

应用程序由主动调用资源,变为被动的等待Spring提供资源

3. DI是什么

DI 是 IoC 的一种具体实现方式,它是指将对象所依赖的其他对象(即依赖)通过构造函数、Setter 方法或其他方式注入到对象中,从而消除了对象之间的耦合关系。在 Spring 中,DI 是通过注解或 XML 配置文件等方式来实现的,它可以使对象之间的依赖关系更加清晰、简单和可维护。

●什么是依赖?

只要是全局属性都是当前类的依赖。

●谁依赖于谁,为什么需要依赖:

应用程序依赖于IoC容器应用程序需要IoC容器来提供对象需要的外部资源

●谁注入谁,注入了什么:

IoC容器注入应用程序某个对象,应用程序依赖的对象注入某个对象所需要的外部资源(包括对象、资源、常量数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值