我们在Tomcat6.0中有JSF2.0,需要在启动Web服务器时初始化ApplicationScope Bean。
我尝试使用PostConstructApplicationEvent processEvent方法初始化Bean,但faces-config.xml中的托管bean返回null。
启动后是否有其他更好的方法来实例化bean?
答案 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
中执行初始化作业。