• 2022-06-07
    在Spring框架中,什么是控制反转?什么是依赖注入?使用控制反转与依赖注入有什么优点?
  • 控制反转(Inversion of Control,IoC)是一个比较抽象的概念,是Spring框架的核心,用来消减计算机程序的耦合问题。依赖注入(Dependency Injection,DI)是IoC的另外一种说法,只是从不同的角度,描述相同的概念。 当某个Java对象(调用者,比如您)需要调用另一个Java对象(被调用者,即被依赖对象,比如面包)时,在传统编程模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象(比如您自己制作面包)。这种方式会增加调用者与被调用者之间的耦合性,不利于后期代码的升级与维护。 当Spring框架出现后,对象的实例不再由调用者来创建,而是由Spring容器(比如面包店)来创建。Spring容器会负责控制程序之间的关系(比如面包店负责控制您与面包的关系),而不是由调用者的程序代码直接控制。这样,控制权由调用者转移到Spring容器,控制权发生了反转,这就是Spring的控制反转。 从Spring容器角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入它所依赖的实例,这就是Spring的依赖注入。 综上所述,控制反转是一种通过描述(在Spring中可以是XML或注解)并通过第三方去产生或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入。

    内容

    • 0

      依赖注入(DI)与控制反转(IoC)的含义不同,描述的不是同一个概念()

    • 1

      Spring框架是一个以翻转控制和依赖注入为核心的轻量级容器框架。

    • 2

      ‎以下有关依赖注入相关说法正确的是‎ A: 依赖注入(DI)与控制反转(IoC)的含义相同,只不过这两个称呼是从两个角度描述的同一个概念 B: 在传统模式下,调用者通常会采用“new 被调用者”的代码方式来创建对象,这种方式会导致调用者与被调用者之间的耦合性增加,不利于后期项目的升级和维护 C: 在使用Spring框架之后,控制权由应用代码转移到了Spring容器,控制权发生了反转,这就是Spring的控制反转 D: 从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量,相当于为调用者注入了依赖的实例,这就是Spring的依赖注入

    • 3

      下面关于依赖注入(DI)描述正确的是() A: 依赖注入与控制反转的含义相同,只不过这两个称呼是从两个角度描述同一个概念 B: 依赖是指子类依赖于父类 C: 从Spring容器的角度来看,Spring容器负责将被依赖对象赋值给调用者的成员变量 D: 依赖注入的是对象而不是类

    • 4

      在关于依赖注入,描述正确的是()。 A: 依赖注入可以增强系统各组件的依赖关系 B: 依赖注入,就是明确地定义组件接口,独立开发各个组件,然后根据组件件依赖关系组装运行的设计模式 C: 依赖注入能够降低系统各组件的依赖关系,提倡面向接口编程 D: Spring的依赖注入和控制反转是完全不同的两个概念