2014-12-14 6 views
3

После прочтения этих,EJB боб и боб CDI и Injection

Я все еще путаюсь в следующих вещах, пожалуйста, исправьте меня, если я ошибаюсь.

  1. Все классы в пределах того же пакета, что и bean.xml является КДИ боб за исключением классов аннотаций в качестве сессии/сообщения/одноплодной.
  2. Только EJB можно впрыскивать с помощью @EJB (в пределах другого EJB), в то время как оба бина компонента CDI и EJB могут быть введены с использованием @inject (в компоненте EJB или CDI).
  3. класса аннотировать, как @Stateless (к примеру), который вводится с помощью @Inject по-прежнему является EJB-бобы, не КДИТЕ фасоли, и по-прежнему будет управляется EJB контейнера со всей благостыней объединения и транзакционными.

Спасибо большое. :)

ответ

5

Я хотел бы сделать следующие корректировки:

  1. Все классы в одном архиве как beans.xml является КДИ боб, включая EJBs.

  2. только EJB может быть введен с помощью @EJB (в пределах другого EJB или любого другого EE управляемого объекта, включая CDI бобы), в то время как КДИ бобовые и EJB-компонент может быть введен с помощью @Inject (в пределах EJB бобов или фасоли CDI) ,

  3. Класс аннотированные в @Stateless (к примеру), который вводится с помощью @Inject по-прежнему является EJB-бобов, и он также может быть КДИ фасоли , если в архиве развертывания бобов; , независимо от, он все равно будет управляться контейнером EJB со всей добротой объединения и транзакционного.

Примечательно, что КДИ управляемого компонент все, что может быть @Inject ред в другой боб CDI и сам может использовать @Inject, что верно для всех EJBs и @EJB может быть использован для введения в EJB в любой другой Е.Е. управляемый компонент (EJB, сервлет, управляемый бином CDI и т. д.).

+0

Это все, что мне нужно знать, пока. Благодаря! –

+0

Если это ответили на ваш вопрос, вы должны нажать «галочку» слева от ответа, чтобы принять ее. –

Смежные вопросы