构造函数注入的3种方式【非引用类型】

1、com.tz.model.UserBean.java

package com.tz.model;

import java.util.Date;

/**
 * 用户信息 
 * 创建人:LiPiaoShui
 * 时间:2015年12月7日-下午4:44:15
 * @version 1.0.0
 */
public class UserBean {
	
	private Integer id;
	private String username;
	private String password;
	private Integer age;
	private String address;
	private String email;
	private Date createTime;
	
	public UserBean() {
		super();
	}
	
	public UserBean(String username, String address) {
		super();
		this.username = username;
		this.address = address;
	}
	
	public UserBean(String username, Integer age) {
		super();
		this.username = username;
		this.age = age;
	}

	
	public UserBean(Integer id, String username, String password, Integer age,
			String address, String email, Date createTime) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
		this.age = age;
		this.address = address;
		this.email = email;
		this.createTime = createTime;
	}

	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	@Override
	public String toString() {
		return "UserBean [id=" + id + ", username=" + username + ", password="
				+ password + ", age=" + age + ", address=" + address
				+ ", email=" + email + ", createTime=" + createTime + "]";
	}
	
}

2、第1种:按参数的索引,此种方式的默认类型为java.lang.String

<bean id="user4" class="com.tz.model.UserBean">
	<constructor-arg index="0" value="keke"/>
	<constructor-arg index="1" value="30"/>
</bean>

3、第2种:按参数的类型

<bean id="user5" class="com.tz.model.UserBean">
	<constructor-arg type="java.lang.String" value="keke2"/>
	<constructor-arg type="java.lang.Integer" value="40"/>
</bean>

4、第3种:按参数的索引和类型【推荐】

<bean id="user6" class="com.tz.model.UserBean">
	<constructor-arg index="0" type="java.lang.String" value="keke3"/>
	<constructor-arg index="1" type="java.lang.String" value="50"/>
</bean>

5、测试代码

public void testIOC() {
	ApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
	UserBean userBean4 = (UserBean) context.getBean("user4");
	UserBean userBean5 = (UserBean) context.getBean("user5");
	UserBean userBean6 = (UserBean) context.getBean("user6");
	//输出:UserBean [id=null, username=keke, password=null, age=null, address=30, email=null, createTime=null]
	System.out.println(userBean4);
	//输出:UserBean [id=null, username=keke2, password=null, age=40, address=null, email=null, createTime=null]
	System.out.println(userBean5);
	//输出:UserBean [id=null, username=keke3, password=null, age=null, address=50, email=null, createTime=null]
	System.out.println(userBean6);
}

猜你喜欢

转载自lipiaoshui2015.iteye.com/blog/2265794
今日推荐