为什么不能在春天将bean的id设置为属性

时间:2014-11-21 23:10:31

标签: java spring javabeans

我在xml中有以下配置

  <bean id="${queue}" class="..." />

然后在日志中我可以看到以下内容。为什么spring不用属性值替换队列?

2014-11-22 07:07:09 DEBUG DefaultListableBeanFactory:220 - Creating shared instance of singleton bean '${queue}'
2014-11-22 07:07:09 DEBUG DefaultListableBeanFactory:450 - Creating instance of bean '${queue}'

我认为它只与rabbitmq有关,但对于anybean来说,它不适用于ID的属性。

spring rabbitmq: can't set id as a property?

1 个答案:

答案 0 :(得分:1)

&#39; ID&#39;是与XML相关的属性,应该是XML文件中唯一的普通字符串。出于您的目的,您可以使用&#39; name&#39;属性。请参阅Spring文档中的5.3.1 Naming beans部分。

 <bean id="queueId" name="${queue}" class="..." />

但是我不推荐这样的操作,因为它不常见并且会降低代码的可维护性。