1、创建HelloApi接口:
package com.spring.service; public interface HelloApi { public void sayHello(); }
2、创建HelloApiImpl1 带构造器实现HelloApi接口类:
package com.spring.service.impl; import com.spring.service.HelloApi; public class HelloApiImpl1 implements HelloApi { private String message; private int index; //@java.beans.ConstructorProperties({"message","index"}) public HelloApiImpl1(String message,int index){ this.message=message; this.index=index; } @Override public void sayHello() { System.out.println(index+": "+message); } }
3、创建Bean配置文件:spring-zhuru.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 通过构造器参数索引方式依赖注入 --> <bean id="byIndex" class="com.spring.service.impl.HelloApiImpl1"> <!-- index表示索引,从0开始,第一个参数索引为0,value 来指定注入的常量值。 --> <constructor-arg index="0" value="Hello World!" /> <constructor-arg index="1" value="1" /> </bean> <!-- 通过构造器参数类型方式依赖注入 :type表示需要匹配的参数类型,可以是基本类型也可以是其他类型,value表示指定注入的常量值 --> <bean id="byType" class="com.spring.service.impl.HelloApiImpl1"> <constructor-arg type="java.lang.String" value="Hello World!" /> <constructor-arg type="int" value="2" /> </bean> <!-- 根据参数名进行注入 ,name表示需要匹配的参数名字,value来指定注入的常量值 --> <bean id="byName" class="com.spring.service.impl.HelloApiImpl1"> <constructor-arg name="message" value="Hello World!" /> <constructor-arg name="index" value="3" /> </bean> </beans>
4、创建ConstructorDependencyInjectTest类测试:
package com.spring.test; import org.junit.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.spring.service.HelloApi; public class ConstructorDependencyInjectTest { @Test public void testDI(){ BeanFactory beanFactory=new ClassPathXmlApplicationContext("spring-zhuru.xml"); //获取根据参数索引依赖注入的Bean HelloApi byIndex=beanFactory.getBean("byIndex", HelloApi.class); byIndex.sayHello(); //获取根据参数类型注入的Bean HelloApi byType=beanFactory.getBean("byType", HelloApi.class); byType.sayHello(); //获取根据参数名字依赖注入的Bean HelloApi byName=beanFactory.getBean("byName", HelloApi.class); byName.sayHello(); } }
5输出结果:
1: Hello World!
2: Hello World!
3: Hello World!
相关推荐
在Spring Boot应用中,构造器注入是一种常见的依赖注入方式,但它可能会引发循环依赖的问题。循环依赖是指两个或多个Bean之间形成一个闭环,彼此依赖对方,导致Spring容器在初始化Bean时无法确定创建顺序,从而抛出...
本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...
该变量将在构造器中被初始化,通过构造注入steelAxe bean实例作为参数传递给Chinese构造器。 在Spring框架中,构造注入可以通过两种方式实现,一种是使用constructor-arg元素,另一种是使用 @Autowired 注解。使用...
标题中的“spring介绍(set和构造器注入)”是指在Spring框架中两种主要的依赖注入(Dependency Injection,简称DI)方式:setter注入和构造器注入。在Spring框架中,DI是一种核心特性,它允许我们解耦组件之间的关系...
DI主要有两种实现方式:setter注入和构造器注入。 首先,我们来理解setter注入。setter注入是通过Spring容器调用对象的setter方法来设置其依赖的对象。这种方式比较灵活,因为可以在运行时改变对象的依赖。例如,...
Spring支持多种类型的构造器注入,包括单一参数的构造器和多个参数的构造器。 1. 单一参数构造器注入 当只有一个参数时,Spring会自动匹配类型并调用相应的构造器。例如: ```java public class UserService { ...
通过实例了解 Java Spring 使用构造器注入的原因 通过实例了解 Java Spring 使用构造器注入的原因,主要介绍了 Spring 框架中的依赖注入机制,特别是构造器注入的方式。文章通过示例代码详细介绍了构造器注入的原理...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...
Spring 框架基于这些知识点,为我们提供了两种注入方式:setter 注入和构造器注入。 二、setter 注入 setter 注入是指通过 setter 方法将依赖对象注入到 Bean 中。例如,在 BookServiceImpl 中定义了引用类型属性 ...
本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...
1. **构造器注入** 构造器注入是通过构造函数来传递依赖对象的。当创建一个类的新实例时,Spring容器会调用带有所需参数的构造函数,从而完成依赖注入。这种方式确保了对象在创建时就已经具备了所有必要的依赖。...
本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...
我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频
Spring 构造器注入是 Spring 调用有参数构造器创建对象。使用构造器参数标签,实现构造器参数注入:<constructor-arg></constructor-arg>。 Spring 的 Bean 属性注入可以实现各种类型的数据注入,包括 String 类型...
在Spring中,依赖注入主要有三种方式:构造器注入、setter注入和接口注入。构造器注入是在对象实例化时通过构造函数传入依赖;setter注入则是通过调用对象的setter方法来设置依赖;接口注入则相对较少使用,它通过...
在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...
本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过在类的构造函数中传入依赖对象来实现的。Spring容器在创建对象时,会调用带有相应依赖的构造...
1. **构造器注入**:通过构造函数传递依赖对象,每个构造函数参数代表一个依赖。这种方式确保对象在创建时就具备了所有必需的依赖。 2. **setter注入**:通过setter方法来注入依赖。Spring容器调用带有@Autowired...
1. **构造器注入**:通过类的构造方法来注入依赖项。 2. **设值注入**:通过setter方法来注入依赖项。 #### 四、使用注解进行依赖注入 随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化...