何时使用<ref bean>以及何时在Spring中使用<ref local>?

Jyo*_*rup 30 spring

何时使用<ref bean="service" />以及何时<ref local="service" />在Spring 使用?

Ara*_*d A 33

使用ref标记的bean属性指定目标bean是最常用的形式,并允许在同一BeanFactory/ApplicationContext中创建对任何bean的引用(无论是否在同一XML文件中),或者父BeanFactory/ApplicationContext .bean属性的值可以与目标bean的id属性相同,也可以与目标bean的name属性中的值之一相同.

<ref bean="someBean"/>
Run Code Online (Sandbox Code Playgroud)

使用local属性指定目标bean利用XML解析器在同一文件中验证XML id引用的能力.local属性的值必须与目标bean的id属性相同.如果在同一文件中找不到匹配元素,则XML解析器将发出错误.因此,如果目标bean位于同一XML文件中,则使用本地变体是最佳选择(以便尽早了解错误).

<ref local="someBean"/>
Run Code Online (Sandbox Code Playgroud)

这是从春源参考这里

  • Spring后来3.2 dos不支持本地.如果您使用本地,则会出现以下错误.`Attribute'local'不允许出现在元素'ref'中 (30认同)

小智 13

4.0 bean xsd不再支持ref元素的local属性,因为它不再提供常规bean引用的值.升级到4.0架构时,只需将现有的ref本地引用更改为ref bean.


rak*_*ell 7

  • <ref local="someBeanId"> 当你的父子配置文件中有一个重复的id并且你想要在两个配置文件中区分这两个时,应该使用它.

  • <ref parent="someBeanId"> 应该在子配置文件中使用以引用父ID.

  • <ref bean="someBeanId"> 如果您的父子配置文件中没有重复的ID,则应该使用此选项.