Я пытаюсь реализовать какой-то заводский шаблон производителя.
Возможно ли каким-либо образом инициировать метод производителя базового типа при инъекции производного типа?CDI - наследование: триггерный производитель базового типа
Предполагая, что следующие интерфейсы:
interface Service
interface AService extends Service
Я хочу, чтобы вызвать этот производитель:
@Produces
Service factory()
На данный момент впрыска:
@Inject
AService srv;
Цель состоит в том, чтобы иметь один производитель завод по различные виды услуг путем добавления интерфейса маркера (услуга в этом случае).
Спасибо за помощь мне
Update:
Я попытался LightGuards раствор и добавляют @Typed
к реализации AService:
@Typed(Service.class)
class AServiceImplemenation implements AService
К сожалению, я получаю неудовлетворенные зависимости ошибка. CDI не вызывает производителя Service
для точки впрыска AService
. Конечно, это имеет смысл по многим причинам. Но есть ли способ заставить вызвать Service
производителя?
К сожалению, я получил _независимые зависимости_ Я отметил внедрение AService в '@Typed (Service.class)' Я также служил дополнительным определителем для точки впрыска и производителя. Но я все еще получаю неудовлетворенные зависимости. – Robotregent
Это очень странно. Какой сервер? Все классы в той же войне/банке? – LightGuard
Я использую jboss 7.1.1. Все классы находятся в одной войне. Другой способ ('@Inject Service' и производитель AService) отлично работает. Где именно следует помещать '@ Typed'? – Robotregent