Spring实现控制反转(IOC)的三种方式(一)——属性注入

续上一篇:Spring实现控制反转(IOC)的三种方式(零)——理解IOC


这篇文章,来理解一下Spring IOC的属性注入(set注入)方法。还是用上一篇的程序员写代码的例子。

package com.spring.demo02.entity;

public class Programmer {

	private String name;
	private String sex;

	// 在这里定义要依赖的computer属性,加上set方法
	private Computer computer;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Computer getComputer() {
		return computer;
	}

	/**
	 * 加上Setter方法
	 * */
	public void setComputer(Computer computer) {
		this.computer = computer;
	}

}

package com.spring.demo02.entity;
public class Computer {
	
	private String brand;
	private String color;
	private String size;
	
	public void coding() {
		System.out.println("Computer is coding!!!");
	}

	public String getBrand() {
		return brand;
	}

	public void setBrand(String brand) {
		this.brand = brand;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public String getSize() {
		return size;
	}

	public void setSize(String size) {
		this.size = size;
	}
	

}

看上面的代码,可以发现,Programmer类里面,有3个属性,name,sex,computer,并且都有对应的getter、setter方法;Computer类里面也有三个属性,分别是品牌、颜色、尺寸,也都有对应的getter、setter方法。这只是第一步,在类里面声明属性并且实现set方法。

接下来,要写一个spring的xml配置文件,如下:




    
  
  	
  	
  	
  
  
  
  	
  	
  	
  
  
 
解读一下这个xml文件:

1.声明一个bean,可以理解为实例化了一个对象。那这里实例化了两个对象(programmer和computer),各个属性都已经赋值上去。(不知道这样理解对不对)

2.id为programmer的bean,其实就是Programmer类;通过给property赋值,Spring就会通过Programmer类的各个属性的set方法,逐一给Programmer的属性赋值。

3.在programmer里面,有一个属性是computer的,可以看到它属性值是 ref="computer",这就说明computer这个属性是个引用,这里ref后面的值其实就是指向另一个bean的id值,所以这里引用的是id为computer的bean。


以上,就是属性注入了。关键的是在类里面声明属性,写set方法,然后在xml里面配置bean和property的值。

如有错漏,还望指正,共同学习!!!




你可能感兴趣的:(Spring实现控制反转(IOC)的三种方式(一)——属性注入)