Как и когда компонент @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 вместо.