Injecter de la liste des objets en CDI (Soudure)

Disons que j'ai une interface appelée SocialNetworkService, et trois implémentations - TwitterService, FacebookService et FriendFeedService.

Maintenant, je veux, à chaque fois que mon managed bean (ou autre composant web) reçoit un message, à le partager sur tous les réseaux sociaux. J'ai essayé:

@Inject private List<SocialNetworkService> socialNetworkServices;

Mais il ne fonctionne pas (erreur de déploiement). (Également essayé à la @Any qualifier - même résultat)

Donc, est-il un moyen pour injecter une liste de tous les (ou certains) implémentations de l'interface?

Je sais que la règle qu'un point d'injection ne doit pas avoir plus d'un bean. Je suppose que je peux le faire en faisant un producteur qui produit de la liste, et à l'aide de Instance<SocialNetworkService>, mais cela me semble trop pour cette tâche.

  • Veux rester pur JSR 330?
  • 330 et 299 .. Qui devrait être suffisante
InformationsquelleAutor Bozho | 2010-10-24