Spring 中的依赖注入

2024 年 8 月 29 日 | 阅读 2 分钟

依赖注入 (DI) 是一种设计模式,它从编程代码中移除依赖关系,以便可以轻松地管理和测试应用程序。 依赖注入使我们的编程代码松散耦合。为了更好地理解 DI,让我们首先了解依赖查找 (DL)

依赖查找

依赖查找是一种按需获取资源的方法。 可以有多种方式来获取资源,例如

在这种方式中,我们直接通过 new 关键字获取资源(A 类的实例)。另一种方式是工厂方法

通过这种方式,我们通过调用静态工厂方法 getA() 获取资源(A 类的实例)。

或者,我们可以通过 JNDI(Java 命名目录接口)获取资源,如下所示:

获取资源的方法有很多。 让我们看看这种方法的问题。

依赖查找的问题

依赖查找主要有两个问题。

  • 紧耦合 依赖查找方法使代码紧密耦合。 如果资源发生变化,我们需要对代码进行大量修改。
  • 不易于测试 这种方法在测试应用程序时会产生很多问题,尤其是在黑盒测试中。

依赖注入

依赖注入是一种设计模式,可以消除程序的依赖性。 在这种情况下,我们从外部来源(例如 XML 文件)提供信息。 它使我们的代码松散耦合,更易于测试。 在这种情况下,我们编写代码如下:

在这种情况下,Address 类的实例由外部来源(例如 XML 文件)通过构造函数或 setter 方法提供。

在 Spring 框架中执行依赖注入的两种方法

Spring 框架提供了两种注入依赖的方式

  • 通过构造函数
  • 通过 Setter 方法