Injecter une liste de haricots à l'aide de Printemps @Configuration d'annotation
J'ai un Printemps bean, et, au Printemps, Haricot, j'ai une dépendance sur une liste d'autres haricots. Ma question est: comment puis-je injecter une liste Générique de haricots comme une dépendance de la fève?
Par exemple, certains codes:
public interface Color { }
public class Red implements Color { }
public class Blue implements Color { }
Mon haricot:
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();
}
}
La question est: comment puis-je obtenir la liste des couleurs du Peintre? Aussi, sur une note de côté: si j'ai l' @Configuration de retourner le type d'Interface, ou la classe?
Merci pour l'aide!
Double Possible de Auto-câblage d'une Liste à l'aide util schéma donne NoSuchBeanDefinitionException
OriginalL'auteur Erik Pragt | 2013-02-15
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez devrait fonctionner, d'avoir un
@Resource
ou@Autowired
sur le setter d'injecter dans toutes les instances de la Couleur à votreList<Color>
champ.Si vous voulez être plus explicite, vous pouvez retourner une collection comme une autre bean:
et l'utiliser comme une autocâblés champ de cette façon:
OU
Sur votre question sur le retour d'une interface ou d'une mise en œuvre, il faut travailler, mais l'interface doit être préféré.
Parfait! Juste ce que je cherchais!
Est-il un moyen d'injecter de la liste dans un autre
@Bean
méthode? ApparemmentList
est difficile à injecter par son nom. Les recommandations sont à utiliser@Resource
mais cela ne fonctionne pas comme une méthode param.OriginalL'auteur Biju Kunjummen