spring set注入

上篇文章说到了构造器注入,但是有时候构造器注入并不是很好用,现在来看下set注入。

构造器注入博客地址:http://blog.csdn.net/luckey_zh/article/details/46671307

看下例子:

public class Roles {
	private int id;
	private String roleName;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getRoleName() {
		return roleName;
	}
	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}
	//重写toString方法,方便测试
	@Override
	public String toString() {
		return "Roles [id=" + id + ", roleName=" + roleName + "]";
	}
}

spring配置:

	<bean id="roles" class="cn.com.ztz.spring.model.Roles">
		<property name="id" value="2"/>
		<property name="roleName" value="管理员"/>
	</bean>

测试main方法:

public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
		Roles r=(Roles)context.getBean("roles");
		System.out.println(r.toString());
	}

输出结果:

Roles [id=2, roleName=管理员]

看spring配置,我们能发现构造器<constructor-arg/> set注入是<property/> 

一个bean引用其他的bean也是差不多的,看下例子

public class Roles {
	private int id;
	private String roleName;
	private Users users;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getRoleName() {
		return roleName;
	}
	public void setRoleName(String roleName) {
		this.roleName = roleName;
	}
	public void setUsers(Users users) {
		this.users = users;
	}
	public Users getUsers() {
		return users;
	}
	//重写toString方法,方便测试
	@Override
	public String toString() {
		return "Roles [id=" + id + ", roleName=" + roleName + ", users="
				+ users + "]";
	}
}
public class Users {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "Users [id=" + id + ", name=" + name + "]";
	}
}

spring配置:

<bean id="roles" class="cn.com.ztz.spring.model.Roles">
		<property name="id" value="2"/>
		<property name="roleName" value="管理员"/>
		<property name="users" ref="users"/>
	</bean>

	<bean id="users" class="cn.com.ztz.spring.model.Users">
		<property name="id" value="2"/>
		<property name="name" value="张三"/>
	</bean>

运行上面的测试方法输出结果:

Roles [id=2, roleName=管理员, users=Users [id=2, name=张三]]

时间: 2024-10-14 00:59:05

spring set注入的相关文章

Spring依赖注入

Spring依赖注入基础 一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AO

Spring学习(二)spring ioc注入的三种方式

一.spring ioc注入有哪三种方式: a setter 原理 : 在目标对象中,定义需要注入的依赖对象对应的属性和setter方法:"让ioc容器调用该setter方法",将ioc容器实例化的依赖对象通过setter注入给目标对象,封装在目标对象的属性中. b 构造器 原理 : 为目标对象提供一个构造方法,在构造方法中添加一个依赖对象对应的参数.ioc容器解析时,实例化目标对象时会自动调用构造方法,ioc只需要为构造器中的参数进行赋值:将ioc实例化的依赖对象作为构造器的参数传入

利用反射实现简单的Spring注解注入实例

一时兴起,这两天看了看Spring的源代码,就想写一个简单的Spring利用注解注入!!Spring的注解注入方式给了我们很方便的好处!大家应该都了解Spring的注入原理,在这里写下一个非常简单的使用注解来注入的实例,做个小小的笔记! 要使用注解,那就绝对和反射离不开.摘抄一段 Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性.例如,使用它能获得 Java 类中各成员的名称并显示出来. J

spring如何注入List,Set,Map对象

原文:spring如何注入List,Set,Map对象 代码下载地址:http://www.zuidaima.com/share/1550463255530496.htm 想把java的List,Set,Map对象通过xml方式注入到对象中如何实现呢? 标签: ioc spring 注入 List Set Map话题: Web开发 依赖注入IoC spring如何注入List,Set,Map对象,布布扣,bubuko.com

SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式

在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. Spring依赖注入(

Spring 构造注入 传参数

1.        提供对应的构造方法 //构造器注入 public class Bean6 { private String name; private Integer age; // 服务于构造器注入使用 public Bean6(String name, Integer age) { super(); this.name = name; this.age = age; } public void show() { System.out.println("bean6:" + nam

(转)Java Web系列:Spring依赖注入基础

一.Spring简介 1.Spring简化Java开发 Spring Framework是一个应用框架,框架一般是半成品,我们在框架的基础上可以不用每个项目自己实现架构.基础设施和常用功能性组件,而是可以专注业务逻辑.因此学习Spring Framework在架构和模式方面的结构和原理,对我们在架构和模块级别的理解帮助极大.Spring Framework(参考1)的宗旨是简化Java开发,主要的手段如下: (1)在架构上解耦:通过DI(依赖注入)管理类型依赖,通过AOP分离关注点,减少重复代码

java框架篇---spring 依赖注入

spring依赖注入的方式有4种 构造方法注入 属性注入 工厂注入 注解注入 下面通过一个实例统一讲解: User.java package com.bjsxt.model; public class User { private String username; private String password; public User(){} public User(String username, String password) { super(); this.username = use

Spring 引用注入setter

注入引用类型:对象 必须保障该对象以Bean形式存在于IoC容器,受Spring控制 1.      提供对应要注入的属性 public class Bean2User { public void Test() { System.out.println("bean2 use obj ..."); } } 2.      为每个要注入的属性提供对应的标准封装setter方法 //setter注入 public class Bean2 { private String name; priv

Spring依赖注入和NEW的差别

Sping为什么使用依赖注入而不使用实例化对象的方式? 首先说明一下概 依赖注入(Dependency of Injection)和控制反转(Inversion of Control 简称:ioc)是一个概念. 具体含义: ? ?当某个角色(Java实例class A,调用者)需要另一个角色(另一个Java实例class B,被调用者)的协助时,在传统的程序设计过程中通常由调用者来创建被调用者的实例(在class A里面 初始化class B). 但在Spring里,创建被调用者实例的工作不再由