Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Ejb Stateful Session Bean


Автор: acvilon 25.10.2009, 11:16
Добрый день. 
Долгое время мучаю себя вопросами на тему Ejb Stateful Session Bean. И никак ко мне не может придти понимае их. Stateless SB понятны. Ищешь в контексте, тебе выдается из пула бин, юзаешь у него метода.

Если же мы юзаем SFSB, то у него есть состояние. Возникают следующие вопросы: 
1) Что есть состояние? 
2) Если под состоянием понимаются значения полей данного бина, то когда это состояние сохраняется?
3) Где сохраняется это состояние?(Где хранятся состояния?)
4) В какой момент контейнер понимает, что нужно восстановить именно это состояние такого то бина? И не только в какой момент, а как он понимает, что нужно именно это состояние?
5) Если вызывается метод, помеченный @Remove, то выполняется этот метод, и кроме этого выполняется метод, помеченный как @PreDestroy? Если он выполняется, то он выполняется до @Remove или после?
6) Что такое пассивация и активация бина, я так понимаю, пассивация это сохранения состояния, а активация восстановления состояния(при активации возникает 4 вопрос).

Буду очень благодарен тому, кто ответит на эти вопросы.

Автор: ShurikA 27.10.2009, 07:36
Очень советую:
http://java.sun.com/javaee/5/docs/tutorial/doc/

Автор: acvilon 27.10.2009, 19:16
Чувак, ты фу! Ты сам то читал их мануал? И я уж сам разобрался со всеми вопросами, методом научного тыка. Без всякого мануала, где все размазано.

1) Состояние бина - значения всех полей бина.
2) Состояние бина сохраняется тогда, когда бин долго не используется и контейнер решает избавиться от объекта, при этом сохраняя его состояние где-то у себя(вся ответственность на этом лежит на контейнере), это называеися пассивацией бина
3) Определяется контейнером
4) У нас на клиенте есть ссылка на бин, когда мы попытаемся дернуть любой из методов, если бин был пассивирован, то он активируется, и вызывается нужный метод.
5) @Remove метод вызывается до @PreDestroy, после вызова этого метода, при попытке вызвать любой метод интерфейса, будет выкидываться ексепшен.
6) ----


Автор: ShurikA 27.10.2009, 19:36
Цитата(acvilon @  27.10.2009,  18:16 Найти цитируемый пост)
Ты сам то читал их мануал? 

Читал, и продолжаю читать когда нужно. Там кстати на тему EJB всё очень доходчиво написанно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)