1. 程式人生 > >idref和ref的區別

idref和ref的區別

在spring中idref是用來將容器內其他bean的id傳給<constructor-arg/>和<property />,記住是bean的id名稱不是bean物件例項,同時使用idref容器在部署的時候還會驗證這個名稱的bean是否真實存在。idref元素的功能與<value>類似,就是idref多了驗證的功能,減少配置的書寫錯誤機率。除了<idref bean=""/>,如果被引用的bean在同一個xml檔案中,且bean的名字就是bean的id,除了可以使用<idfef local=""/>,此屬性允許xml解析器在解析XML的時候對引用的bean進行驗證。

<bean id="BeanName"  class="...."/>

<bean id="bean">

   <property name="BeanName">

     <idref bean="BeanName"/>

 <!--value>BeanName</value-->

   </property>

  </bean>

idref和ref的作用的完全不同的,ref是對bean的物件例項的引用,ref同樣有兩種方式<ref bean=""/>和<ref local=""/>,bean屬性的值可以同目標bean的id屬性相同,也可以同目標bean的name屬性中任何一個值相同。用local屬性指定目標bean可以利用XML解析器的能力在同一個檔案中驗證XML id引用。