Вопрос по jsf-2, destroy, managed-bean, view-scope, jsf – Как и когда бин @ViewScoped уничтожается в JSF?

14

Жизненный цикл@RequestScoped а также@SessionScopedBean управляемые бобы управляются самим контейнером сервлетов, так как они в основном хранятся как атрибутHttpRequest а такжеHttpSession соответственно. Как JSF управляет жизненным циклом@ViewScopedBean ? Я знаю, что он создается при создании представления и может использоваться до обратной передачи в другое представление. Но я обнаружил, что мусор не собирается сразу после того, как мы переходим от этого взгляда.

сборка мусора асинхронная. когда область просмотра "уничтожены» это действительно простопомечены как готовые к сборке мусора, как и все другие объекты Java. Примечание: маркировка действительно является счетчиком ссылок 0 (т.е. помечена как "больше не используется). DwB
После того, как метод действия управляемого компонента возвращает верный результат навигации, даже если онПо аналогии с этим управляемый bean-объект области видимости будет выделен и воссоздан. Прочитай этоbalusc.blogspot.co.il/2011/09/communication-in-jsf-20.html и вот где они хранятся:stackoverflow.com/a/9177769/617373 Daniel
Ну, на самом деле, выВы не должны быть в состоянии предсказать gc или это произошло немедленно, не так ли? Но что касается бобов в мохарре, см.stackoverflow.com/a/13097208/1530938 kolossus

Ваш Ответ

1   ответ
26

постбэк с неnull результат выполнен,

или количество (логических) представлений в сеансе превышено, и конкретное представление является первым в цепочке LRU (в Мохарре этонастраивается с помощьюcom.sun.faces.numberOfViewsInSession а такжеcom.sun.faces.numberOfLogicalViews параметры контекста, каждый со значением по умолчанию 15),

или число активных областей просмотра в сеансе превысило (в Мохарре этос жестко заданным пределом 25), см. такжеJSF 2.2. Потребление памяти. Почему Мохарра хранит в памяти объекты ViewScoped последних 25 видов?

или сеанс истек.

Так будетне быть уничтоженным, когда страница выгружена в результате нажатия на ссылку GET на другую страницу, или обновления страницы, или закрытия вкладки / окна браузера. Боб будет жить до тех пор, пока не будет выполнено одно из перечисленных выше условий. В любом случае, чтобы уничтожить его во время разгрузки, используйтеOmniFaces@ViewScoped вместо.

в icefaces есть одна аннотация @ WindowDisposed.on браузер закрывает себя представление будет собирать мусор Vishnudev K
1) да. Oни'хранятся в карте LRU, упорядочены по последнему использованию. Наименее недавно использовалась 1-я запись. 2) Смотритеstackoverflow.com/questions/12562469/... BalusC
что вы подразумеваете под LRU? Наименее недавно использовали? а также что вы подразумеваете подлогический Просмотры? Geek
Может быть, добавить информацию о JS, чтобы немедленно сделать это на 'разгрузить? Kukeltje
@BalusC, есть ли какие-нибудь решения для более быстрого уничтожения видимых объектов? Поможет ли в этом аннотация аннотации oominfaces? Mahmoud Saleh

Похожие вопросы