`

Spring依赖注入方式---- 构造方法注入

 
阅读更多

Spring通过构造方法依赖注入

1.  创建一个Person

 

package com.spring.bean;
public class Person {
	private String name;
	private String address;
	private double height;
	private int weight;
	
	public Person(String name, String address, double height) {
		super();
		this.name = name;
		this.address = address;
		this.height = height;
	}
	
	public Person(String name, String address, int weight) {
		super();
		this.name = name;
		this.address = address;
		this.weight = weight;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", address=" + address + ", height=" + height + ", weight=" + weight + "]";
	}
	
	
}

 

 

2. 创建spring 配制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">

	
	<!-- 通过构造器注入属性-->
	<!-- 1. 通过index属性指定要注入的属性值,默认会选择靠前的构造器注入 -->
	<bean id="person1" name="person" class="com.spring.bean.Person">
		<constructor-arg value="matt" index="0"></constructor-arg>
		<constructor-arg value="上海" index="1"></constructor-arg>
		<constructor-arg value="172" index="2"></constructor-arg>
	</bean>
	<!-- 2. 通过name属性指定要注入的属性值-->
	<bean id="person2" class="com.spring.bean.Person">
		<constructor-arg value="joy" index="0"></constructor-arg>
		<constructor-arg value="上海" index="1"></constructor-arg>
		<constructor-arg value="59" name="weight"></constructor-arg>
	</bean>
	
	<!-- 2. 通过type属性指定要注入的属性值-->
	<bean id="person3" class="com.spring.bean.Person">
		<constructor-arg value="joy" index="0"></constructor-arg>
		<constructor-arg value="上海" index="1"></constructor-arg>
		<constructor-arg value="59" type="int"></constructor-arg>
	</bean>
</beans>

 

 

3. 创建运行类

 

package com.spring.bean;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class PersonMain {

	public static void main(String[] args) {
		ApplicationContext ctx  = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		Person person1 = (Person) ctx.getBean("person1");
		System.out.println(person1);
		
		Person person2 = (Person) ctx.getBean("person2");
		System.out.println(person2);
		
		Person person3 = (Person) ctx.getBean("person3");
		System.out.println(person3);

	}

}

 

运行结果:

Person [name=matt, address=上海, height=172.0, weight=0]
Person [name=joy, address=上海, height=0.0, weight=59]
Person [name=joy, address=上海, height=0.0, weight=59]

 

注, 可以通过spring配制文件中不同的属性指定选择相应的构造方法。

         

 

 

分享到:
评论

相关推荐

    spring依赖注入的实现原理

    二、Spring依赖注入的实现方式 1. **setter方法注入**:Spring通过调用对象的setter方法来设置其依赖的实例。在bean配置文件中,使用`&lt;property&gt;`标签指定依赖属性。 2. **构造器注入**:Spring可以通过调用带有多...

    Spring 依赖注入 构造方法注入

    NULL 博文链接:https://zhangyulong.iteye.com/blog/856986

    spring依赖注入底层详解

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的底层实现机制。 首先,我们要...

    Spring依赖注入的方式

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

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

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

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

    spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.ja及ck-2.5.1.jar

    了解CGLIB和Objenesis的工作原理,可以帮助我们更好地理解Spring如何实现依赖注入、AOP以及其它高级特性。例如,CGLIB的代理过程涉及到了ASM库,Objenesis的实例化机制则涉及了Java的反射API和类加载器。通过深入...

    spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.5.1.jar

    Spring框架的核心包括依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。依赖注入允许组件之间松耦合,而AOP则用于实现跨切面的关注点,如日志记录、事务管理等。这两个jar...

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

    通过阅读和理解这些源码,你可以更深入地了解Spring依赖注入的工作原理及其在项目中的具体使用。 在进行依赖注入时,Spring使用BeanFactory或ApplicationContext作为容器,负责创建、管理和装配Bean。容器读取配置...

    spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.jar

    在Java开发领域,Spring框架是不可或缺的重要组成部分,它为开发者提供了强大的依赖注入、AOP(面向切面编程)以及各种企业级服务。标题中的"spring-cglib-repack-3.2.5.jar"和"spring-objenesis-repack-2.6.jar"是...

    spring依赖注入

    Spring依赖注入是Spring框架的核心特性之一,它使得对象之间的依赖关系得以解耦,增强了代码的可测试性和可维护性。依赖注入(Dependency Injection,简称DI)的理念是,一个对象不应该负责寻找并创建它所依赖的对象...

    spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar

    Objenesis可以快速地实例化一个对象,而无需调用构造函数,这对于Spring的依赖注入和AOP代理来说是一个非常有用的补充工具。 这两个库在Spring框架中的协同工作,使得Spring能够灵活地处理各种类型的类,并实现高效...

    Spring 三种依赖注入方式.doc

    Spring 框架中提供了多种依赖注入方式,其中最常用的三种依赖注入方式分别是接口注入、设值注入和构造函数注入。下面,我们将分别对这三种依赖注入方式进行详细的介绍和分析。 一、接口注入 接口注入是指通过接口...

    Spring依赖注入检查.

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...

    模仿Spring依赖注入

    【Spring依赖注入详解】 在Java开发中,Spring框架以其强大的依赖注入(Dependency Injection,简称DI)功能而闻名。依赖注入是一种设计模式,它允许我们解耦组件,使我们的应用程序更加灵活,易于测试和维护。本篇...

    Spring依赖注入——java项目中使用spring注解方式进行注入.rar

    本知识点将深入探讨Spring框架如何通过注解方式实现依赖注入,以帮助开发者更好地理解和应用这一特性。 一、依赖注入的概念 依赖注入是一种设计模式,其核心思想是将对象之间的依赖关系从代码中分离出来,由外部...

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

    普通方法(set 方法)、构造方法、引用类型、简单类型(基本数据类型与 String)等。Spring 框架基于这些知识点,为我们提供了两种注入方式:setter 注入和构造器注入。 二、setter 注入 setter 注入是指通过 ...

    Spring Ioc 注解 依赖注入

    随着Spring框架的发展,除了XML配置之外,Spring还引入了注解的方式来简化依赖注入的过程。下面介绍几种常用的依赖注入相关的注解: - **@Component**:用于标记一个普通的Java类为Spring管理的Bean。 - **@Service...

    spring导入eclipse时少的spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.4.jar

    通过这种方式,Spring能够注入切面逻辑,比如日志记录、事务管理等,即使在不修改原有代码的情况下也能实现扩展功能。 其次,`spring-objenesis-repack-2.4.jar`是Objenesis库的一个版本,Objenesis是一个用于创建...

Global site tag (gtag.js) - Google Analytics