Как и когда компонент @ViewScoped уничтожается в JSF?
жизненный цикл @RequestScoped
и @SessionScopedBean
управляемые бобы управляются самим Контейнером сервлетов, поскольку они в основном хранятся как атрибут HttpRequest
и HttpSession
соответственно. Как JSF управляет жизненным циклом @ViewScopedBean
? Я знаю, что он создается при создании представления и может использоваться до передачи в другой вид. Но я выяснил, что это не мусор, собранный сразу после того, как мы переедем с этой точки зрения.
1 ответов
Он будет уничтожен, когда
postback с не -
null
результат операцииили количество (логических) представлений в сеансе превысило, и конкретное представление является первым в цепочке LRU (в Mojarra, это настраивается
com.sun.faces.numberOfViewsInSession
иcom.sun.faces.numberOfLogicalViews
параметры контекста, каждый со значением по умолчанию 15),или количество областей просмотра actieve в сеансе превысило (в Mojarra, это жестко закодированный предел 25), см. Также потребление памяти JSF 2.2: почему Mojarra сохраняет в памяти бобы ViewScoped последних 25 представлений?
или время сессии истекло.
таким образом не уничтожается при выгрузке страницы в результате нажатия ссылки GET на другую страницу, обновления страницы или закрытия вкладки/окна браузера. Боб будет жить до тех пор, пока один из поставленных выше условий. Чтобы уничтожить его во время разгрузки, подумайте об использовании OmniFaces @ViewScoped
вместо.