我在@Configuration
中将bean实例化如下@Bean
public Queue queue1() {
return new Queue("queue1");
}
@Bean
public Queue queue2() {
return new Queue("queue2");
}
@Bean
public List<Queue> queues(List<String> names) {
List<Queue> ret = new LinkedList<>();
for (String name : names) {
ret.add(new Queue(name));
}
return ret;
}
当我@Autowire他们喜欢下面
@Autowired
private Collection<Queue> queues;
或
@Autowired
private List<Queue> queues;
我希望得到所有(都是单独实例化的和 它们的列表但我只能单独实例化。
你能告诉我吗?
注意:
如果我使用@Qualifier,我可以让列表自动装配但只有那些。我正在寻找一种自动装配它们的方法。
答案 0 :(得分:0)
最后,我设法使用PostConstruct
获得了我需要的东西:
@Autowired
private QueueNames queueNames;
@Autowired
private ConfigurableBeanFactory beanFactory;
@PostConstruct
public void queues() {
for (String name : queueNames.get()) {
beanFactory.registerSingleton(name, new Queue(name));
}
}