我想要一个托管 bean 在应用程序加载时在我的 JSF Web 应用程序中启动时在内部运行。如何编写此类并在 Glassfish 中进行配置?
最佳答案
在带有 CDI 的 JSF 中,observe initialization的application scope .
@Named
@ApplicationScoped
public class App {
public void startup(@Observes @Initialized(ApplicationScoped.class) Object context) {
// ...
}
public void shutdown(@Observes @Destroyed(ApplicationScoped.class) Object context) {
// ...
}
}
当有 OmniFaces在手,这可以简化为
@Eager
.@Named
@Eager
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
在 JSF 2.2- 中使用 now deprecated
javax.faces.bean
注释,使用 application scoped managed bean这是 eagerly初始化。@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void startup() {
// ...
}
@PreDestroy
public void shutdown() {
// ...
}
}
关于jsf - 如何配置启动托管 bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474882/