Кажется, я не могу найти способ принудительно создать экземпляр / инициализировать управляемый компонент приложения при запуске веб-приложения. Кажется, что bean-объекты области приложения лениво создаются при первом обращении к bean-компоненту, а не при запуске веб-приложения. Для моего веб-приложения это происходит, когда первый пользователь впервые открывает страницу в веб-приложении.
Причина, по которой я хочу этого избежать, заключается в том, что во время инициализации моего bean-объекта области действия приложения происходит много трудоемких операций с базой данных. Он должен извлечь кучу данных из постоянного хранилища, а затем кэшировать некоторые из них, которые будут часто отображаться пользователю в виде элементов ListItem и т. Д. Я не хочу, чтобы все это происходило, когда первый пользователь подключается и, таким образом, вызвать длительную задержку.
Моей первой мыслью было использовать метод contextInitialized () ServletContextListener старого стиля и оттуда использовать ELResolver для ручного запроса экземпляра моего управляемого компонента (таким образом, вызывая инициализацию). К сожалению, я не могу использовать ELResolver для запуска инициализации на этом этапе, поскольку для ELResolver требуется FacesContext, а FacesContext существует только в течение срока службы запроса.
Кто-нибудь знает альтернативный способ сделать это?
Я использую MyFaces 1.2 в качестве реализации JSF и в настоящее время не могу выполнить обновление до 2.x.