`

spring 构造器注入

 
阅读更多

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!

分享到:
评论

相关推荐

    基于SpringBoot构造器注入循环依赖及解决方式

    在Spring Boot应用中,构造器注入是一种常见的依赖注入方式,但它可能会引发循环依赖的问题。循环依赖是指两个或多个Bean之间形成一个闭环,彼此依赖对方,导致Spring容器在初始化Bean时无法确定创建顺序,从而抛出...

    Spring依赖注入使用构造设注入demo

    本篇将详细讲解如何使用构造器注入作为Spring依赖注入的一种方式,并通过一个完整的可运行示例——"SpringIOCTest2"来加深理解。 首先,理解依赖注入的概念。依赖注入允许我们不在类内部创建对象,而是通过外部源...

    Spring框架构造注入操作实战案例

    该变量将在构造器中被初始化,通过构造注入steelAxe bean实例作为参数传递给Chinese构造器。 在Spring框架中,构造注入可以通过两种方式实现,一种是使用constructor-arg元素,另一种是使用 @Autowired 注解。使用...

    spring介绍(set和构造器注入)

    标题中的“spring介绍(set和构造器注入)”是指在Spring框架中两种主要的依赖注入(Dependency Injection,简称DI)方式:setter注入和构造器注入。在Spring框架中,DI是一种核心特性,它允许我们解耦组件之间的关系...

    spring setter 和构造 注入 例子 spring 4.2.0

    DI主要有两种实现方式:setter注入和构造器注入。 首先,我们来理解setter注入。setter注入是通过Spring容器调用对象的setter方法来设置其依赖的对象。这种方式比较灵活,因为可以在运行时改变对象的依赖。例如,...

    Spring_0300_IOC_Injection_Type 构造器注入

    Spring支持多种类型的构造器注入,包括单一参数的构造器和多个参数的构造器。 1. 单一参数构造器注入 当只有一个参数时,Spring会自动匹配类型并调用相应的构造器。例如: ```java public class UserService { ...

    通过实例了解java spring使用构造器注入的原因

    通过实例了解 Java Spring 使用构造器注入的原因 通过实例了解 Java Spring 使用构造器注入的原因,主要介绍了 Spring 框架中的依赖注入机制,特别是构造器注入的方式。文章通过示例代码详细介绍了构造器注入的原理...

    Spring三种注入方式(三)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过构造函数来传递依赖对象的一种方式。当类有多个构造函数时,Spring会使用带有最多参数的构造函数...

    Java开发学习(六)----DI依赖注入之setter及构造器注入解析.doc

    Spring 框架基于这些知识点,为我们提供了两种注入方式:setter 注入和构造器注入。 二、setter 注入 setter 注入是指通过 setter 方法将依赖对象注入到 Bean 中。例如,在 BookServiceImpl 中定义了引用类型属性 ...

    Spring三种注入方式(一)

    本篇主要介绍Spring中的三种注入方式,包括构造器注入、设值注入和接口注入。 首先,我们来看构造器注入。构造器注入是在创建对象时,通过构造器传递依赖对象。这种方式强制了对象在创建时就必须提供所有必要的依赖...

    spring依赖注入三种方式 测试源码

    1. **构造器注入** 构造器注入是通过构造函数来传递依赖对象的。当创建一个类的新实例时,Spring容器会调用带有所需参数的构造函数,从而完成依赖注入。这种方式确保了对象在创建时就已经具备了所有必要的依赖。...

    Spring注入的方式

    本文将详细探讨Spring中的两种主要注入方式:构造器注入和setter注入,以及它们各自的特点和适用场景。 首先,让我们理解什么是依赖注入(Dependency Injection,简称DI)。在传统的编程模式中,一个类通常会直接...

    SpringSet方法注入

    我们学习了spring框架spring框架里面有3个优势第一个是轻量级的IOC也叫控制反转后来改名为DI也叫依赖注入,依赖注入里面有3中注入方法分别是set注入,构造器注入,注解注入,我传的是set注入的视频

    Spring-MyBatis-Ajax重点详解

    Spring 构造器注入是 Spring 调用有参数构造器创建对象。使用构造器参数标签,实现构造器参数注入:&lt;constructor-arg&gt;&lt;/constructor-arg&gt;。 Spring 的 Bean 属性注入可以实现各种类型的数据注入,包括 String 类型...

    spring依赖注入

    在Spring中,依赖注入主要有三种方式:构造器注入、setter注入和接口注入。构造器注入是在对象实例化时通过构造函数传入依赖;setter注入则是通过调用对象的setter方法来设置依赖;接口注入则相对较少使用,它通过...

    spring依赖注入底层详解

    在Spring中,依赖注入可以通过构造器注入、设值注入和接口注入三种方式实现。 1. 构造器注入:通过在类的构造函数中传递依赖对象来完成注入。这种方式在创建对象时就确保了所有依赖都已就绪,适合于对象的依赖关系...

    Spring依赖注入的方式

    本文将深入探讨Spring中的依赖注入方式,包括构造器注入、设值注入和接口注入。 **一、构造器注入** 构造器注入是通过在类的构造函数中传入依赖对象来实现的。Spring容器在创建对象时,会调用带有相应依赖的构造...

    SpringIoc注入

    1. **构造器注入**:通过构造函数传递依赖对象,每个构造函数参数代表一个依赖。这种方式确保对象在创建时就具备了所有必需的依赖。 2. **setter注入**:通过setter方法来注入依赖。Spring容器调用带有@Autowired...

    Spring Ioc 注解 依赖注入

    1. **构造器注入**:通过类的构造方法来注入依赖项。 2. **设值注入**:通过setter方法来注入依赖项。 #### 四、使用注解进行依赖注入 随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化...

Global site tag (gtag.js) - Google Analytics