1. 程式人生 > >spring中,ref和idref標籤之間的區別?

spring中,ref和idref標籤之間的區別?

ref和idref標籤在定義上的區別:

idref標籤:注入的是目標bean的id,同時使用idref容器在部署的時候還會驗證這個名稱的bean是否真實存在。idref就跟value一樣,只是將某個字串注入到屬性或者建構函式中,只不過注入的是某個Bean定義的id屬性值

ref:ref元素是將目標bean定義的例項注入到屬性或建構函式中

示例:

<bean id="bea" class="java.lang.String">
	<constructor-arg index="0"><value>testString</value></constructor-arg>
</bean>
<bean id="tid" class="com.zking.spring01.entity.Test">
	<constructor-arg name="tname"><idref bean="bea" /></constructor-arg>
	<property name="id">
		<ref local="bea" />
	</property>
	<property name="tsex" value="man"></property>
</bean>
上面的<constructor-arg name="tname"><idref bean="bea" /></constructor-arg>
<constructor-arg name="tname"><value>bea</value></constructor-arg>。

ref元素的屬性,區別如下:

parent 只能指定位於當前容器的父容器中定義的物件引用;
bean 基本上通吃,即包括以上兩種情況都可以,所以,通吃情況下,直接使用bean來指定物件引用就可以了。