2011-02-02 8 views

ответ

3

«Состояния» и «Безгражданство» являются атрибутами для сессионных компонентов.

Консольный компонент (вкратце) предоставляет способ вызова методов на сервере приложений. Боб является экземпляром класса java. Как правило, компонент уничтожается после того, как удаленный метод завершает работу (и возвращает результат). Эти компоненты являются «без гражданства».

Возможно (но довольно необычно) добавлять поля и атрибуты к компоненту, чтобы клиент мог «создать» этот экземпляр на сервере и использовать его для более чем одной операции. Эти бобы являются «состояниями» (и их следует избегать).

+0

не используются в сеансах с использованием состояния в приложениях корзины покупок? поэтому ... почему следует избегать состояния бобов, если есть хотя бы один вариант использования? – Thufir

7

Stateless и Stateful являются EJB Session Bean понятие, а не JPA.

Nota bene: JPA является частью спецификации EJB, но может использоваться отдельно и снаружи контейнера EJB. Это то, что обычно вызывает путаницу.

Отредактировано: Полезная нить SO, Why Use Stateful Session Beans.

+1

+1: краткий, но правильный. Следует отметить, что JPA является частью спецификации EJB, но может использоваться отдельно и вне контейнера EJB. Это и вызывает путаницу. – darioo

+0

Спасибо, darioo, ваше предложение добавлено в сообщение. :) –

0

Stateful и Stateless - это свойства EJB's (Java EE, управляемые контейнером сессионных бобов), а не что-то конкретное для спецификации JPA. А бит Stateful будет связан с ним для каждого запроса от одного и того же клиента. Stateless Бобы не имеют конкретного состояния клиента, и один экземпляр может использоваться одновременно, потокобезопасно, между несколькими запросами клиентов.

JPA - это одна стратегия персистентности, которая может использоваться для сохранения состояния бобов состояния (я предполагаю, что вы также можете использовать JDBC напрямую или плагировать другую стратегию сохранения).

0

Я думаю, что часть путаницы заключается в том, что Java Persistence API является частью спецификации EJB3 и иногда кажется взаимозаменяемым с EJB. Я этого не понимал до тех пор, пока не взял первый Pro EJB 3: Java Persistence API. Взгляните на http://en.wikipedia.org/wiki/Enterprise_JavaBean, как представляется, это хороший обзор по этому вопросу.

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