spring中,ref和idref標籤之間的區別?
阿新 • • 發佈:2018-12-10
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來指定物件引用就可以了。