Помогите мне понять область действия управляемого компонента JSF из представления параллелизма

Может ли кто-нибудь помочь мне понять область действия управляемого компонента JSF с точки зрения параллелизма?

Мое понимание:

Если у меня есть компонент в области сеанса, это означает: только один пользователь может получить доступ к этому управляемому компоненту, поэтому параллелизм невозможен.

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

Кроме того, если я использую bean-компонент в области none, то после того, как пользователь вызовет bean-компонент, он будет создан, а после завершения вызова bean-компонент будет удален.

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

Мы высоко ценим все ваши вклады.


person Mohammed Amr    schedule 11.08.2011    source источник


Ответы (1)


Я думаю, что вы хорошо понимаете срок службы каждого из прицелов.

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

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

person BalusC    schedule 11.08.2011