[英]How to inject several beans with Spring Java config?
给定spring java-config并带有返回bean列表的方法:
@Configuration
public class Config {
@Bean(name = "resultConsumers")
public List<Consumer> getConsumers() {
return Arrays.asList(...);
}
}
如何将其注入另一个bean?
class Bean {
@Inject
what?
}
PS它没有列出使用不同实现的使用者,它们都是同一类的实例。
当使用@Autowired
注释Collection
类型时,Spring不会寻找该类型的对应bean。 而是查找Collection
打算存储的组件类型。
而是使用@Resource
和Bean名称。
@Resource(name ="resultConsumers")
private List<Consumer> consumers;
您不应将@Bean创建为列表。 只需将所有Consumer对象添加为单个bean。 将字段自动连接为“消费者列表”,Spring会找到您的所有消费者Bean并为您创建列表...
@Configuration
public class Config {
@Bean
public Consumer consumer1() {
return new Consumer();
}
@Bean
public Consumer consumer2() {
return new Consumer();
}
}
...
class Bean {
// Contains consumer1 and consumer2
@Inject
private List<Consumer> consumers;
}
@Configuration
public class Config {
@Bean
public List<Consumer> getConsumers() {
return Arrays.asList(...);
}
}
注射是这样的
class InjectionPoint{
@Autowred
private Consumer [] consumerList;
}
就这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.