Помогите мне понять область действия управляемого компонента JSF с точки зрения параллелизма - PullRequest
1 голос
/ 11 августа 2011

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

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

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

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

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

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

Все ваши входные данные высоко оценены.

1 Ответ

4 голосов
/ 11 августа 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...