JSF命名Bean,Eager应用程序作用域(又名@ManagedBean(eager = true))

时间:2011-10-19 22:27:58

标签: java jsf-2 glassfish-3 cdi managed-bean

有没有办法初始化javax.inject.Named / javax.enterprise.context.ApplicationScoped @ManagedBean(eager=true) javax.faces来自@Named @ApplicationScoped public Mail() { ... } 包的注释的命名Bean?

{{1}}

我希望在应用程序启动时加载此类,而不是在webapplication引用此bean时加载。

PS。 JSF 2.1
由Glassfish注入的豆3.1

1 个答案:

答案 0 :(得分:3)

您可以创建一个CDI扩展,在其中一个方法上具有@Observes AfterBeanDiscovery参数。在那里,您可以实例化bean,从而在容器启动时初始化它。 CODI让您更轻松,请参阅https://cwiki.apache.org/confluence/display/EXTCDI/Core+Usage#CoreUsage-Startup