Spring 依赖注入

spring 依赖注入

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

依赖关系查找

依赖查找是一种在需求之后获取资源的方法。例如,可以有多种获取资源的方法:

a obj = new aimpl();

这样,我们可以通过new关键字直接获取资源(a类的实例)。另一种方法是工厂方法:

a obj = a.geta();

这样,我们通过调用静态工厂方法geta()获取资源(a类的实例)。

或者,我们可以通过jndi(java命名目录接口)获取资源。 :

context ctx = new initialcontext();
context environmentctx = (context) ctx.lookup("java:comp/env");
a obj = (a)environmentctx.lookup("a");

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

 

依赖关系查找问题

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

 

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

 

 

依赖注入

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

class employee{
address address;
employee(address address){
this.address=address;
}
public void setaddress(address address){
this.address=address;
}
}

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

 

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

spring框架提供了两种注入依赖项的方法

 

  • 通过构造方法
  • 通过setter方法

 

spring 依赖项构造方法注入示例 具有依赖对象的构造函数注入 constructor注入以及示例 constructor注入(具有从属对象)示例 constructor注入和map示例 constructor注入(具有相关对象)示例 spring bean继承 spring setter方法注入 setter注入和依赖对象示例 setter注入和集合示例 setter注入(具有相关对象)示例 setter注入和map示例 带非字符串映射的setter注入示例 构造函数与setter注入之间的区别

下一节:spring 自动装配

spring 教程

相关文章