Как заставить bean-объект в области приложения создавать экземпляры при запуске приложения?

Кажется, я не могу найти способ заставить экземпляр управляемого компонента на уровне приложения быть инициализированным / инициализированным при запуске веб-приложения. Кажется, что bean-объекты области приложения лениво создаются при первом обращении к bean-компоненту, а не при запуске веб-приложения. Для моего веб-приложения это происходит, когда первый пользователь впервые открывает страницу в веб-приложении.

Причина, по которой я хочу этого избежать, заключается в том, что во время инициализации моего bean-объекта в области приложения происходит ряд трудоемких операций с базой данных. Он должен извлечь кучу данных из постоянного хранилища, а затем кэшировать некоторые из них, которые будут часто отображаться пользователю в виде элементов ListItem и т. Д. Я не хочу, чтобы все это происходило, когда первый пользователь подключается и, таким образом, вызвать долгую задержку.

Моей первой мыслью было использовать метод contextInitialized () ServletContextListener старого стиля и оттуда использовать ELResolver для ручного запроса экземпляра моего управляемого компонента (таким образом, вызывая инициализацию). К сожалению, я не могу использовать ELResolver для запуска инициализации на этом этапе, поскольку для ELResolver требуется FacesContext, а FacesContext существует только в течение срока службы запроса.

Кто-нибудь знает альтернативный способ сделать это?

Я использую MyFaces 1.2 в качестве реализации JSF и не могу перейти на 2.x в настоящее время.

Ответы на вопрос(4)

Ваш ответ на вопрос