Вставить список объектов в CDI (Weld)

Допустим, у меня есть интерфейс под названием SocialNetworkService , и три реализации - TwitterService , FacebookService и FriendFeedService .

Теперь я хочу, чтобы всякий раз, когда мой управляемый компонент (или любой другой веб-компонент) получает сообщение, поделиться им во всех социальных сетях. Я пробовал:

@Inject private List<SocialNetworkService> socialNetworkServices;

Но не вышло (ошибка развертывания). (Также пробовал использовать квалификатор @Any - тот же результат)

Итак, есть ли способ ввести список всех (или некоторых) реализаций интерфейса?

Я знаю правило, что в данной точке инъекции не должно быть более одного возможного bean-компонента. Думаю, я могу добиться этого, создав производителя, который создает список, и используя Instance , но это кажется слишком большим для этой задачи.

38
задан Bozho 26 October 2010 в 19:36
поделиться