首页 > 其他分享 >Spring 依赖注入

Spring 依赖注入

时间:2023-01-16 23:25:09浏览次数:36  
标签:依赖 Spring 获取 查找 address 方法 资源 注入

依赖注入(DI)是一种设计模式,可以从编程代码中删除依赖,以便可以轻松管理和测试应用程序。

依赖注入使我们的编程代码松散耦合。

为了更好地理解DI,让我们首先了解依赖关系查找(DL):

依赖关系查找

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

A obj = new AImpl();

依赖关系查找

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

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;
}
}

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

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

通过构造方法通过Setter方法

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

标签:依赖,Spring,获取,查找,address,方法,资源,注入
From: https://www.cnblogs.com/cnetsa/p/17056668.html

相关文章

  • Spring IoC容器
    IoC容器负责实例化,配置和组装对象。IoC容器从XML文件获取信息并相应地工作。IoC容器执行的主要任务是:实例化应用程序类配置对象组装对象之间的依赖关系 有两种类......
  • SpringBoot自定义starter
    SpringBoot自定义starter目录SpringBoot自定义starter1自定义starter1.1新建project和Module1.2对于starter-provider1.3install1.4对于starter-user1.5测试2执行......
  • spring 创建应用
    在这里,我们将使用eclipseIDE创建一个spring框架的简单应用程序。让我们看看在EclipseIDE中创建spring应用程序的简单步骤。在EclipseIDE中创建spring应用程序的步骤......
  • Spring 示例
    在这里,我们将学习创建第一个spring应用程序的简单步骤。要运行此应用程序,我们不使用任何IDE。我们只是在使用命令提示符。让我们看看创建spring应用程序的简单步骤创建J......
  • Spring Framework的优势
    SpringFramework有很多优点。它们如下:1、预定义模板Spring框架提供了JDBC,Hibernate,JPA等技术的模板。 因此,无需编写过多的代码。它隐藏了这些技术的基本步骤。让我......
  • spring cloud 错误:namingService subscribe failed
    ERROR67472---[错误:main]c.a.cloud.nacos.discovery.NacosWatch:namingServicesubscribefailed解决方案:修改成xuguo就行。......
  • Spring 模块
    Spring框架包含许多模块,例如Core,bean,Context,ExpressionLanguage,AOP,Aspects,Instrumentation,JDBC,ORM,OXM,JMS,Transaction,Web,Servlet,Struts等。这些模块如下图所示,它们分为Tes......
  • 230116_50_SpringBoot入门
    指定自定义的配置文件bill.propertiesbill.properitesname=billage=11happy=falsebirth=2021/12/2通过@PropertySource注解指定自定义的配置文件@PropertyS......
  • Spring 教程
    Spring教程Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。......
  • day03-Spring管理Bean-IOC-01
    Spring管理Bean-IOC1.Spring配置/管理bean介绍Bean管理包括两方面:创建bean对象给bean注入属性Bean的配置方式:基于xml文件配置方式基于注解配置方式2.基于X......