在一个spring上下文中,我发现一些bean引用在bean名称之前包含&
。我想知道春天名字开头的&
意味着什么。
答案 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="&myBean" />