JSF 2.0 - преимущества ViewScope и SessionScope? - PullRequest
4 голосов
/ 09 декабря 2011

Было бы замечательно, если бы кто-нибудь помог мне понять, в чем преимущество бина ViewScoped, когда в него внедрен SessionBean.

Можем ли мы сэкономить на использовании памяти сеанса?

Если мы используем только компонент SessionScoped или ViewScoped с внедренным компонентом SessionBean, я полагаю, что нет никакой разницы в объеме памяти сеанса.

Почему мы сталкиваемся с таким количеством хлопот, связанных с использованием bean-компонентов с областями видимости и сессий, когда все так гладко достигается с помощью bean-компонентов SessionScoped.

Спасибо, Sundeep

Ответы [ 2 ]

6 голосов
/ 09 декабря 2011

Это очень распространенная ситуация, когда вам нужно сохранить данные только для одной страницы, а затем уничтожить их при переходе на другую страницу.Это делает бин @ViewScoped разумным выбором.@SessionScoped управляемый компонент будет хранить все данные в сеансе.Итак, зачем загрязнять вашу сессионную карту, когда данные больше не нужны?

Также обратите внимание, что аннотация @ViewScoped недоступна в CDI.Так что если вы используете бины с @Named аннотацией (а не @ManagedBean), то вам не повезло.Однако есть несколько альтернатив.

2 голосов
/ 09 декабря 2011

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

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

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

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