Именованный компонент JSF, область действия приложения Eager (aka @ManagedBean (eager = true)) - PullRequest
6 голосов
/ 20 октября 2011

Есть ли способ инициализировать именованный компонент, аннотированный javax.inject.Named / javax.enterprise.context.ApplicationScoped, как @ManagedBean(eager=true) из пакета javax.faces?

@Named
@ApplicationScoped
public Mail() { ... }

Я хочу загрузить этот класс при запуске приложения, а не когда веб-приложение ссылается на этот компонент.

пс. JSF 2.1
Боб, инъецированный Glassfish 3.1

1 Ответ

3 голосов
/ 26 октября 2011

Вы можете создать расширение CDI, у которого есть параметр @Observed AfterBeanDiscovery в одном из его методов. Там вы можете создать экземпляр компонента и, таким образом, инициализировать его при запуске контейнера. CODI упростил вам задачу, см. https://cwiki.apache.org/confluence/display/EXTCDI/Core+Usage#CoreUsage-Startup

...