2015-04-11 4 views
0

Я действительно смущен этим. Предприятие Javabeans имеет систему управления жизненным циклом фасоли, это @Stateful, @Stateless и @Singleton, поэтому, очевидно, управление жизненным циклом. Однако у CDI также есть другая система, которая отражает это: @Dependent, @RequestScoped, @SessionScoped и @Application, что выглядит эквивалентом @Singleton в EJB.Java EE 7: Управление жизненным циклом EJB с CDI или без него? Каковы различия?

EJB должны выбрать одну или несколько систем, если я правильно понял? Но использование CDI дает более точное управление зерном, например, система EJB не распознает запросы по сравнению с сеансами, какие CDI делает? Это верно ?

Также в некоторых книгах указано, что CDI имеет контекст, в то время как управление жизненным циклом EJB отсутствует, а ресурсы необходимо закрыть вручную. Я не понимаю, что они подразумевают под этим, поскольку контейнер EJB также управляет жизненными циклами bean-компонентов, так что же это «контекст», который CDI обеспечивает, что EJB нет?

Благодаря

+0

Слишком много вопросов в этом вопросе – kolossus

+0

Вы уже ответили на ваш вопрос. Контекстом CDI beans является либо запрос, сеанс, либо приложение. Так же, как с лицами, управляемыми бобами. Но лица, управляемые beans, имеют ограниченную функциональность по сравнению с CDI beans. Стандартные EJB не имеют такого контекста вообще. – Frank

ответ

0

Семантика CDI и Session Beans (@Singleton также Bean Session) немного отличаются: Фасоль Session даст вам управление транзакциями и параллелизм, в то время как CDI не делает. Вы можете, конечно, написать продюсера для каждого сеансового бина и добавить их в CDI в своем приложении.

0

CDI предоставляет дополнительные функции поверх EJB. Они обеспечивают «контекстуальное» управление жизненным циклом EJB (сессионные компоненты). «Контекстуальный» означает, что контейнер создает и уничтожает экземпляры и делает их доступными для других компонентов, исполняемых в том же контексте. Вы определяете контекст компонента, используя аннотации, связанные с областью, такие как @RequestScoped и т. Д. Я написал small blog post об этом (может помочь). Я бы очень рекомендовал прочитать CDI specification document - разделы 1.2.2, 3.2, 7.3.2, 7.3.3

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