我们在Tomcat6.0中有JSF2.0,需要在web服务器启动时初始化ApplicationScope Bean
我尝试使用PostConstructApplicationEvent processEvent方法来初始化Bean,但是来自faces-config.xml的托管Bean返回null。
是否有其他更好的方法在启动后实例化bean ?
删除任何与bean相关的 faces-config.xml
声明(否则它们将覆盖JSF 2.0注释),然后用@ManagedBean(eager=true)
注释bean,如下所示:
@ManagedBean(eager=true)
@ApplicationScoped
public class Bean {
// ...
}
这样bean将总是在JSF web应用启动时被实例化,而不需要查看任何页面。然后可以在bean的构造函数和/或@PostConstruct
中执行初始化工作。