Spring 专题
专题目录
您的位置:java > Spring专题 > Spring由名称(Name)自动装配
Spring由名称(Name)自动装配
作者:--    发布时间:2019-11-20
在spring中,“按名称自动装配”是指,如果一个bean的名称与其他bean属性的名称是一样的,那么将自动装配它。
例如,如果“customer” bean公开一个“address”属性,spring会找到“address” bean在当前容器中,并自动装配。如果没有匹配找到,那么什么也不做。
你可以通过 autowire="byname" 自动装配像下面这样:
<!-- customer has a property name "address" -->
	<bean id="customer" class="com.h3.common.customer" autowire="byname" />
	
	<bean id="address" class="com.h3.common.address" >
		<property name="fulladdress" value="yilong road, ca 188" /> </bean>
看看spring自动装配的完整例子。

1. beans

这里有两个 beans, 分别是:customer 和 address.

package com.h3.common;
 
public class customer 
{
	private address address;
	//...
}
package com.h3.common;
 
public class address 
{
	private string fulladdress;
	//...
}

2. spring 装配

通常情况下,您明确装配bean,这样通过 ref 属性:
<bean id="customer" class="com.h3.common.customer" >
		<property name="address" ref="address" />
	</bean>
	
	<bean id="address" class="com.h3.common.address" >
		<property name="fulladdress" value="yilong road, ca 188" /> </bean>

输出

customer [address=address [fulladdress=yilong road, ca 188]]
使用按名称启用自动装配,你不必再声明属性标记。只要在“address” bean是相同于“customer” bean 的“address”属性名称,spring会自动装配它。
<bean id="customer" class="com.h3.common.customer" autowire="byname" />
	
	<bean id="address" class="com.h3.common.address" >
	<property name="fulladdress" value="yilong road, ca 188" /> </bean>

输出

customer [address=address [fulladdress=yilong road, ca 188]]
看看下面另一个例子,这一次,装配将会失败,导致bean “addressabc”不匹配“customer” bean的属性名称。
<bean id="customer" class="com.h3.common.customer" autowire="byname" />
	
	<bean id="addressabc" class="com.h3.common.address" >
		<property name="fulladdress" value="block a 888, ca" />
	</bean>

输出

customer [address=null]

下载代码  – http://pan.baidu.com/s/1mgo3pos

网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册