JSF2.0 PostConstructApplicationEvent托管bean为null

时间:2011-04-26 17:45:32

标签: jsf jsf-2

我们在Tomcat6.0中有JSF2.0,需要在启动Web服务器时初始化ApplicationScope Bean。
我尝试使用PostConstructApplicationEvent processEvent方法初始化Bean,但faces-config.xml中的托管bean返回null。

启动后是否有其他更好的方法来实例化bean?

1 个答案:

答案 0 :(得分:1)

删除与bean相关的任何 faces-config.xml声明(否则将覆盖JSF 2.0注释),然后使用@ManagedBean(eager=true)注释bean,如下所示:

@ManagedBean(eager=true)
@ApplicationScoped
public class Bean {
    // ...
}

这样bean将始终在JSF webapp启动时实例化,而无需查看任何页面。然后,您可以在构造函数和/或bean的@PostConstruct中执行初始化作业。