(四)setter注入

在正常编写简单Java类的过程一定要提供有无惨构造,甚至有许多自己定义的工具类也都会提供有无惨构造,所以使用构造方法的注入操作并不是我们喜欢1方式.

    实际上任何的类都会通过setter设置属性,这一点在简单Java类上表现的特别明显,

范例:定义Dept类

package cn.zwb.vo;

public class Dept {
	private Integer deptno;
	private String dname;
	public Dept(){}
	
	public Integer getDeptno() {
		return deptno;
	}

	public void setDeptno(Integer deptno) {
		this.deptno = deptno;
	}

	public String getDname() {
		return dname;
<bean id="dept" class="cn.zwb.vo.Dept">
	<property name="deptno" value="10"></property>
	<property name="dname" value="开发部"></property>
	</bean>

}public void setDname(String dname) {this.dname = dname;}@Overridepublic String toString() {// TODO Auto-generated method stubreturn "部门编号:"+ this.deptno+ ",名称"+this.dname;}}

        在传统的操作之中一定是首先实例化Dept类对象,而后调用setter设置内容,但是现在可以利用Spring动态设置内容.

范例:观察Spring的注入操作

<bean id="dept" class="cn.zwb.vo.Dept">
	<property name="deptno" value="10"></property>
	<property name="dname" value="开发部"></property>
	</bean>

        利用这种setter的设置才是在实际开发之中使用最多的操作情况,

        但是这整个利用setter注入其强大之处,还在于可以引用 其他的类型的Bean对象.

范例:定义Emp.java类

package cn.zwb.vo;

public class Emp {
	private Integer empno;
	private String ename;
	private Dept dept;
	public Integer getEmpno() {
		return empno;
	}
	public void setEmpno(Integer empno) {
		this.empno = empno;
	}
	public String getEname() {
		return ename;
	}
	public void setEname(String ename) {

		this.ename = ename;
	}
	public Dept getDept() {
		return dept;
	}
	public void setDept(Dept dept) {
		this.dept = dept;
	}
	@Override
	public String toString() {
		
		return "雇员编号"
				+ this.empno
				+ ",姓名"
				+ this.ename
				+ ",部门"
				+this.dept;
	}
}

范例:编写applicationContext.xml

<bean id="emp" class="cn.zwb.vo.Emp">
		<property name="empno" value="7369"></property>
		<property name="ename" value="zwb"></property>
		<property name="dept" ref="dept"></property>
	</bean>

        如果现在是具体的内容则使用value属性,如果要引用其他Bean的对象,那么就使用"ref"属性.

    如果现在某个内容要是null怎么办呢?

扫描二维码关注公众号,回复: 1002890 查看本文章

    现在有两种方式设置null:

方式一:不设置dname属性,内容就是null 

方式二:直接设置为null

<property name="dname"><null/></property>

        但是以上所进行的属性设置只是设置了常用的类型,例如:Integer,String,其他引用,可是在实际的开发之中还有可能设置布尔值.但是对于布尔值的设置,在Spring里面支持如下几种:true\false,1\0,on\off,yes\no

范例:设置布尔型

package cn.zwb.vo;
public class Dept {
	private Integer deptno;
	private String dname;
	private boolean close;
	public Dept(){}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return "部门编号:"
				+ this.deptno
				+ ",名称"
				+this.dname
				+",关闭标记:"
				+ this.close;
	}
	public boolean isClose() {
		return close;
	}
	public void setClose(boolean close) {
		this.close = close;
	}
}  
	<property name="close" value="off"></property>
	<property name="close" value="no"></property>


猜你喜欢

转载自blog.csdn.net/qq1019648709/article/details/80422304