在春天使用属性作为依赖注入的限定符

时间:2011-05-03 13:51:05

标签: spring

是否可以按名称@Autowire一个bean(即使用@Qualifier),但是从BeanFactoryPostProcessor设置的属性中获取bean的名称。所以简而言之:

@Autowired
@Qualifier(@Value("${name.of.my.object}")) 
private MyObject obj;

假设已经创建了多个MyObject bean,并且PropertyPlaceholderConfigurer读取的属性文件中有一个名为name.of.my.object = foo的属性

1 个答案:

答案 0 :(得分:2)

那会很好,但我认为你不能做这样的事情。

我能想到的最接近的是在XML中定义bean别名:

<alias bean="${name.of.my.object}" alias="myAlias"/>

然后引用限定符中的别名:

@Autowired
@Qualifier("myAlias") 
private MyObject obj;

不是很优雅,我以前没有尝试过,但我认为它应该有用。