今天在做SSH框架Demo實例時,在ApplicationResources.properties文件時對<ref bean>與<ref local>感到不解,經(jīng)查找資料才弄明白,如下:
<bean id="userDAOProxy"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="target">
<ref local="UserDAO" />
</property>
</bean>
1、用local屬性指定目標bean可以利用xml解析器的能力在同一個文件中驗證xml id引用.如果在同一個文件中沒有匹配的元素,xml解析器就會產(chǎn)生一個error,所以如果目標bean在同一個xml文件中,那么用local形式是最好的選擇.
2、可以這么說,<ref bean 是尋找全局中的bean; <ref local 是尋找本xml文件中的bean
3、<ref>提供了如下幾方面的屬性:
1)bean:在當前Spring XML配置文件中,或者在同一BeanFactory(ApplicationContext)中的其他JavaBean中.
2)local:在當前Spring XML配置文件中.其依賴的JavaBean必須存在于當前Spring XML培植文件中.如果借助 于Spring IDE,則在編譯期可以對其依賴的JavaBean進行驗證?;?/span>local方式,開發(fā)者能夠使用到XML本身提供的優(yōu)勢,而進行驗證。
3)parent:用于指定其依賴的父JavaBean定義。