了解弹簧箱名称“& myBean”

时间:2013-05-30 11:15:08

标签: java spring

在一个spring上下文中,我发现一些bean引用在bean名称之前包含&。我想知道春天名字开头的&意味着什么。

1 个答案:

答案 0 :(得分:6)

它们是对FactoryBeans的引用(即工厂本身,而不是工厂生产的对象)。来自Spring documentation

  

当您需要向容器询问实际的FactoryBean实例本身而不是它所生成的bean时,在调用{{&时,使用&符号getBean()(不带引号)为bean id添加前缀1}} ApplicationContext的方法。因此,对于id为myBean的给定FactoryBean,在容器上调用getBean("myBean")将返回FactoryBean的产品,并调用getBean("&myBean")返回FactoryBean实例本身。

XML中的&符号需要作为&实体引用进行转义,因此如果要在XML中声明属性值,这是对FactoryBean的引用,则需要

<property name="someProperty" ref="&amp;myBean" />