почему пул без гражданства? - PullRequest
3 голосов
/ 13 ноября 2009

Обычно мы используем экземпляр Singleton для бизнес / дао слоя. В чем причина объединения сессионных компонентов без сохранения состояния в случае EJB?

Ответы [ 2 ]

3 голосов
/ 13 ноября 2009

«Отсутствие состояния» в имени относится к состоянию диалога сеанса, то есть состоянию, которое сохраняется между вызовами компонента, сохраняемым в течение сеанса. Однако сессионным компонентам без сохранения состояния все еще разрешено иметь переменные экземпляра. Эти переменные экземпляра не должны относиться к состоянию диалога, а должны быть «общими» для клиентов.

Другими словами, сессионные компоненты без сохранения состояния не гарантируют потокобезопасность.

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

2 голосов
/ 13 ноября 2009
  • Поскольку их создание дорого, часто требуется доступ к внешним ресурсам, таким как базы данных, очереди сообщений и т. Д.
  • Поскольку вы не хотите, чтобы их создавалось неограниченное количество, иначе у вас закончатся ресурсы
  • Чтобы контейнер мог управлять безопасностью потоков для вас
...