我想听一个 JSF 应用程序是否像ServletContextListener
普通的 Servlet Web 应用程序一样启动或停止。我怎样才能做到这一点?
问问题
3286 次
2 回答
6
您可以使用一个急切初始化的方法,并分别用 和 注释所需的启动/关闭钩子方法。@ApplicationScoped
@ManagedBean
@PostConstruct
@PreDestroy
所以:
@ManagedBean(eager=true)
@ApplicationScoped
public class App {
@PostConstruct
public void init() {
// ...
}
@PreDestroy
public void destroy() {
// ...
}
}
请注意,这并不意味着您不能ServletContextListener
在 JSF webapp 中使用 a。JSF 构建在 Servlet API 之上,这意味着您可以继续使用它。使用新的 Servlet 3.0@WebListener
注释,也可以配置它而无需web.xml
:
@WebListener
public class Config implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// ...
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// ...
}
}
于 2012-08-29T12:37:44.480 回答
2
您可以为此提供一个系统事件侦听器。有关更多详细信息,请参阅此博文:使用系统事件引导 JSF 应用程序
于 2012-08-29T14:07:12.687 回答