Что лучше при очистке бобов в JSF? - PullRequest
0 голосов
/ 19 марта 2012

Я постоянно сталкиваюсь с этим основным сомнением в JSF. Как вы думаете, что могло бы повлиять на производительность для очистки компонента в JSF?

a) Извлечение компонента, его очистка и установкавернуться к контексту

  FacesContext context = FacesContext.getCurrentInstance();

  Map<String, IFEContainer> advSSSuggestions = (Map<String,IFEContainer>) context.getELContext().getELResolver().getValue(context.getELContext(), null, "advSSSuggestions");

  advSSSuggestions.clear();

  FacesContext.getCurrentInstance().getELContext().getELResolver().setValue(context.getELContext(), null, "advSSSuggestions", advSSSuggestions);

b) Установка непосредственно нулевого значения для компонента в контексте

 context.getELContext().getELResolver().setValue(context.getELContext(), null, "advSSSuggestions", null);

c) Установка непосредственно нового объекта для компонента в контексте

 context.getELContext().getELResolver().setValue(context.getELContext(), null, "advSSSuggestions", new HashMap<String,IFEContainer>());

1 Ответ

0 голосов
/ 19 марта 2012

Я думаю, что лучший вариант а) для очистки (вам не нужно использовать ..getElResolver (). SetValue (..), потому что это уже удалось). Причина того, что после сеанса будет уничтожен, все объекты сеанса будут также уничтожены /

б) После того, как вы положите NULL в сессию, предыдущий объект карты не будет уничтожен в то же время, вы удалите его из карты.

в) Помещать каждый раз, когда новый объект (если это HashMap) слишком дорого для сохранения в контексте сеанса для систем с высокой нагрузкой.

...