Spring 依赖注入

Posted Kirl z

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring 依赖注入相关的知识,希望对你有一定的参考价值。

Spring 依赖注入

Spring 依赖注入DI 是实现IoC的方法之一, 就是由IoC容器在运行期间, 动态地将某种依赖关系注入到对象之中

Spring 依赖注入 (DI)和控制反转含义相同,它们是从两个角度描述同一个概念。使用依赖注入可以更轻松的管理和测试应用程序。

当某个 Java 实例需要另一个 Java 实例时,传统的方法是由调用者创建被调用者的实例(例如,使用 new 关键字获得被调用者实例),而使用 Spring 框架后,被调用者的实例不再由调用者创建,而是由 Spring 容器创建,这称为控制反转。

Spring 容器在创建被调用者的实例时,会自动将调用者需要的对象实例注入给调用者,调用者通过 Spring 容器获得被调用者实例,这称为依赖注入。

依赖注入主要有两种方式,分别是 setter 注入(设值注入)和构造函数注入。

构造函数注入
指 IoC 容器使用构造函数注入被依赖的实例。可以通过调用带参数的构造函数实现依赖注入,每个参数代表一个依赖。

setter 注入
指 IoC 容器使用 setter 方法注入被依赖的实例。通过调用无参构造器或午餐 static 工厂方法实例化 Bean 后,调用该 Bean 的 setter 方法,即可实现基于 setter 的 DI。

在 Spring 实例化 Bean 的过程中,首先会调用默认的构造方法实例化 Bean 对象,然后通过 Java 的反射机制调用 setXxx() 方法进行属性的注入。因此,setter 注入要求 Bean 的对应类必须满足以下两点要求。

  • 必须提供一个默认的无参构造方法。
  • 必须为需要注入的属性提供对应的 setter 方法。

使用 setter 注入时,在 Spring 配置文件中,需要使用 元素的子元素 为每个属性注入值。而使用构造注入时,在配置文件中,主要使用 标签定义构造方法的参数,使用其 value 属性(或子元素)设置该参数的值。

以上是关于Spring 依赖注入的主要内容,如果未能解决你的问题,请参考以下文章

Spring 依赖注入

Spring依赖注入浅析

JAVA框架 Spring 依赖注入

如何通俗的理解java的依赖注入

Spring的依赖注入怎么理解

Spring依赖注入和NEW的差别