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

posted @ 2022-02-26 17:06  binbin_cloud  阅读(247)  评论(0编辑  收藏  举报