是否可以按名称@Autowire一个bean(即使用@Qualifier),但是从BeanFactoryPostProcessor设置的属性中获取bean的名称。所以简而言之:
@Autowired
@Qualifier(@Value("${name.of.my.object}"))
private MyObject obj;
假设已经创建了多个MyObject bean,并且PropertyPlaceholderConfigurer读取的属性文件中有一个名为name.of.my.object = foo的属性
答案 0 :(得分:2)
那会很好,但我认为你不能做这样的事情。
我能想到的最接近的是在XML中定义bean别名:
<alias bean="${name.of.my.object}" alias="myAlias"/>
然后引用限定符中的别名:
@Autowired
@Qualifier("myAlias")
private MyObject obj;
不是很优雅,我以前没有尝试过,但我认为它应该有用。