<!-- 整篇系列内容都是根据郭峰大大的Spring从入门到精通学习整理的-->
在spring中,用ref属性指定依赖,有三种模式。
Local
Bean
Parent
用local属性指定:
如果一个Bean与被参考引用的Bean在同一个XML文件中且被参考引用的Bean是用ID来命名的,那么就可以使用ref的local属性。
作用: 这样会让XML解析器更早地在XML文档中解析时,验证。
如果一个Bean与被参考引用的Bean在同一个XML文件中,使用LOCAL是最好的选择。
缺点:如果在同一个XML文件中没有匹配的元素,XML解析器将会产生一个错误。
<property name=”属性名称”>
<ref local=”同一个XML文档中其他Bean”/>
</property>
用Bean属性指定:
用ref的Bean属性指定被参考引用的Bean是Spring最常见的形式,它允许指向的Bean可以在同一个XML中,也可以不在同一个XML中。
Bean属性的值可以与被参考引用的Bean的id相同,也可以与被参考引用的Bean的Name属性相同。
<property name=”属性名称”>
<ref bean=”其他Bean”/>
</property>
用parent属性指定
用parent属性指定被参考引用的Bean,允许引用当前BeanFactory或ApplicationContext的父BeanFactory或ApplicationContext中Bean。
Parent属性的值可以与被参考引用的Bean的id相同,也可以与被参考引用Bean的name属性相同。
<property name=”属性名称”>
<ref bean=”其他Bean”/>
</property>
这三种模式,用local属性指定依赖和用Bean属性指定依赖最为常用。
两者之间的比较。
〓相同点:两者都可以用Bean的id进行参考引用,都可以对同一XML中的Bean进行参考引用。
〓不同点:用Bean属性指定的依赖可以使用Bean的name来进行参考引用,还可以对不同XML中的Bean进行参考引用。