Injizieren Sie eine Liste von beans mit Spring @Configuration-annotation
Ich habe eine Spring-bean, und in die Spring-Bean-ich habe eine Abhängigkeit eine Liste von anderen Bohnen. Meine Frage ist: wie kann ich Spritzen eine Generische Liste von Bohnen als eine Abhängigkeit, die Bohne?
Zum Beispiel, einige code:
public interface Color { }
public class Red implements Color { }
public class Blue implements Color { }
Meine Bohne:
public class Painter {
private List<Color> colors;
@Resource
public void setColors(List<Color> 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();
}
}
Die Frage ist, wie bekomme ich die Liste der Farben in der Maler? Auch auf einer seitlichen Anmerkung: ich habe die @ - Konfiguration zurückkehren, die Art der Schnittstelle oder Klasse?
Danke für die Hilfe!
- Möglich, Duplikat der Auto-Verdrahtung eine Liste mit util-schema gibt NoSuchBeanDefinitionException
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie sollten arbeiten, mit einem
@Resource
oder@Autowired
auf die setter injizieren sollte alle Instanzen von Farbe zu IhremList<Color>
Feld.Wenn Sie wollen, noch deutlicher, Sie zurückkehren können, eine Sammlung als eine andere bean:
und verwenden Sie es als eine autowired Feld auf diese Weise:
ODER
Auf Ihre Frage über die Rückkehr einer Schnittstelle oder einer Implementierung, einer von beiden sollte funktionieren, aber die Oberfläche sollte bevorzugt werden.
@Bean
Methode? OffenbarList
ist umständlich zu injizieren, indem Sie Namen. Empfehlungen zur Verwendung@Resource
aber das funktioniert nicht als Methode param.