我想听一下 JSF 应用程序是否启动或停止,就像使用ServletContextListener
在普通 Servlet Web 应用程序中。我怎样才能实现这个目标?
您可以使用@ApplicationScoped http://docs.oracle.com/javaee/6/api/javax/faces/bean/ApplicationScoped.html @ManagedBean http://docs.oracle.com/javaee/6/api/javax/faces/bean/ManagedBean.html它被急切地初始化并注释所需的启动/关闭钩子方法@PostConstruct http://docs.oracle.com/javaee/6/api/javax/annotation/PostConstruct.html and @PreDestroy http://docs.oracle.com/javaee/6/api/javax/annotation/PreDestroy.html分别。
So:
@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void init() {
// ...
}
@PreDestroy
public void destroy() {
// ...
}
}
请注意,这确实not意味着你不能使用ServletContextListener
在 JSF Web 应用程序中。 JSF 构建在 Servlet API 之上,这意味着您可以继续使用它。使用新的 Servlet 3.0@WebListener http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/WebListener.html注解,也可以不需要配置web.xml
:
@WebListener
public class Config implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// ...
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// ...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)