EJB: что означает сохранение состояния при вызовах методов?

«Stateful: эти bean-компоненты могут хранить состояние клиента при вызовах методов. Это возможно с использованием переменных экземпляра, объявленных в определении класса. Затем клиент устанавливает значения для этих переменных и использует эти значения в других вызовах методов».

Что означает сохранение состояния при вызовах методов?

извините за нубство моего вопроса.


person lego.warrior    schedule 23.12.2014    source источник


Ответы (2)


Вы можете думать об этом как о HttpSession в веб-приложении. То, что вы сохраняете в HttpSession, доступно для различных запросов к веб-серверу. Точно так же то, что вы сохраняете как переменные класса в сеансовом EJB, доступно для различных вызовов методов, выполняемых в одном и том же сеансовом EJB.

Ссылаться:

Поиск возвращает новый экземпляр сеансового компонента Stateful http://www.javaworld.com/article/2071724/java-web-development/ejb-fundamentals-and-session-beans.html

person Dev Blanked    schedule 23.12.2014
comment
если не сложно, не могли бы вы показать мне, как выполнять поиск в сеансовом компоненте с отслеживанием состояния. - person lego.warrior; 23.12.2014
comment
@lee я добавил несколько ссылок. Поиск важен в случае EJB сущностей. так как это происходит через ID. Для сеанса клиент EJB должен использовать ту же ссылку во время взаимодействия. - person Dev Blanked; 23.12.2014

Statefullness — это плохо, когда дело доходит до параллелизма. Например, у вас есть один Statefull Bean, UserRegistrationBean, который хранит электронную почту, а затем, если два пользователя пытаются зарегистрироваться одновременно в состоянии гонки, один пользователь перезаписывает электронную почту другого.

Statefullness требует синхронизированного доступа к состоянию, что является дорогостоящим.

person shazin    schedule 23.12.2014