使用Spring @Configuration批注注入bean列表

我有一个Spring bean,在Spring Bean中我依赖于其他bean的列表。 我的问题是:如何将bean的通用列表注入该bean的依赖项?

例如,一些代码:

public interface Color { } public class Red implements Color { } public class Blue implements Color { } 

我的豆子:

 public class Painter { private List colors; @Resource public void setColors(List colors) { this.colors = colors; } } @Configuration public class MyConfiguration { @Bean public Red red() { return new Red(); } @Bean public Blue blue() { return new Blue(); } @Bean public Painter painter() { return new Painter(); } } 

问题是; 如何获取Painter中的颜色列表? 另外,旁注:我应该让@Configuration返回接口类型还是类?

谢谢您的帮助!

你有什么应该工作,在setter上有@Resource@Autowired应该将所有Color实例注入List字段。

如果您想更明确,可以将集合作为另一个bean返回:

 @Bean public List colorList(){ List aList = new ArrayList<>(); aList.add(blue()); return aList; } 

并以这种方式将其用作自动assembly的字段:

 @Resource(name="colorList") public void setColors(List colors) { this.colors = colors; } 

要么

 @Resource(name="colorList") private List colors; 

关于返回接口或实现的问题,任何一个应该可以工作,但接口应该是首选。