Как и когда в JSF уничтожается компонент @ViewScoped?

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

    Он будет уничтожен, когда

    • была выполнена обратная передача с null результатом,

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

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

    • или, сессия истекла.

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

    Interesting Posts

    java.security.cert.CertificateException: сертификаты не соответствуют ограничениям алгоритма

    Почему мой размер текста настолько мал после изменения моего увеличения экрана до 125% и обратно?

    переопределение или настройка конечной точки веб-службы во время выполнения кода, сгенерированного с помощью wsimport

    Как я могу объединить два нераспределенных пространства?

    Случайные триггеры активации Windows INSERT; Как остановить его навсегда?

    Как найти переменные документа в MS Word без использования макроса

    MySQL INSERT IF (пользовательские операторы if)

    Разница в номерах Socket.io между broadcast.to и socket.in

    Как мы можем «восстановить» блокнот после сбоя?

    Как настроить драйвер jdbc для подключения к hsqldb из libreoffice?

    Создание PDF из Rails

    Как вы сравниваете две строки версии в Java?

    Графика Коррупция даже во время загрузки, затем после 2 неудачных перезагрузок она говорит, что BOOTMGR отсутствует

    Google-Chrome: сохранить как полную веб-страницу

    mongodb найти несколько элементов массива

    Давайте будем гением компьютера.