Spring之利用autowire属性进行自动装配

spring的自动属性装配,其实就是说,对于bean的属性,不用使用手工显示装配,可以让spring自己通过在xml文件中按照一定的规则查找相关的符合条件的bean,装配为bean的属性。


这样说起来有点绕口,直接上代码。


首先,写一个辅助类。

package com.cmm;

public class Phone {
	private String brand;
	private int price;
	@Override
	public String toString() {
		return "Phone [brand=" + brand + ", price=" + price + "]";
	}

}



package com.cmm;

public class Person {
	private Phone phone;
	

	@Override
	public String toString() {
		return "Person [phone=" + phone + "]";
	}
}


(一)通过类型进行自动装配。



	
	
	
	
	
	
	



但是,需要注意两点。

第一:如果同一个xml中有两个或两个以上的同一类型的bean,就会装配失败,抛出异常。

第二:如果没有找到匹配的bean,则该属性会被设置为null。



	
	
	
	
	
	
	
	
	
	 
	


添加一个属性
package com.cmm;

public class Person {
	private Phone phone;
	private String name;
	public void setPhone(Phone phone) {
		this.phone = phone;
	}
	public void setName(String name) {
		this.name = name;
	}
	@Override
	public String toString() {
		return "Person [phone=" + phone + ", name=" + name + "]";
	}

}

配置如下:



	
	
	
	
	
	
	
	 
	



结果如下:

Spring之利用autowire属性进行自动装配_第1张图片


name属性为:null。


(二)通过属性名字进行装配。



	
	
	
	
	
	
	
	 
	 
	



使用名字进行自动装配,实际上就是在xml中寻找与类属性同名的bean,如XXX,然后调用该类的setXXX方法来设置属性。


总结:自动装配,就是使用bean的autowire属性按照不同的方式,调用类的setter方法,设置bean属性。常用的:byType与byName。






你可能感兴趣的:(Spring)