spring 中<ref parent="">标签是什么意思;ref标签与ref属性有什么不同;子容器如何引用父容器的bean
spring的配置文件可能会有多个
<property name="a" ref="b" />就是找当前配置文件里的bean 也就是id为b的
<ref bean ="b"/> 是寻找全局中的 bean, 跨文件;
在工作中一个项目spring的配置文件 肯定有好几个用<ref bean="b" /> 来关联指定在其他xml文件中的bean很方便而且不容易出错
其实<ref标签里 有3种属性 <ref bean=""/>,<ref local=""/>,<ref parent=""/> 而第一种不用说了 第二种就是关联当前xml的bean
也就等同于<property name="a" ref="b" />这种写法
而第三种就是 用于指定其依赖的父 JavaBean 定义
也说明了子容器可以访问父容器的bean
看一下上面,一个父容器拥有一个id="accountService"的bean, 而子容器也拥有一个id="accountService"的bean并且对这个bean基于set的依赖注入,其注入的数据是父容器的id="accountService"的bean
所以怎么办,如果使用寻找全局<ref bean="accountService"/> , 那必然会出现歧义,用<ref local="accountService"/>那就更不可能
由于这两配置文件存在子父容器关系,所以就可以使用<ref parent="accountService"/> 来引用父类的bean,并且如果父类没有也不会匹配当前容器的bean
但是因为没有child属性,所以父类是无法访问子类的bean