我使用ContextLoaderListener
来提升弹簧上下文。
在此之前的 web.xml 中,我有自定义侦听器,其中包含一些检查。如果这些检查失败,我不希望启动Spring上下文。
如果我在另一个侦听器中有异常,我如何阻止Spring上下文加载?
我会在ServletContext中添加一些属性,但我不知道它如何影响spring ctx的加载。
以下是非常相似的问题:Stop deployment when Exception occurs in ServletContextListener
答案 0 :(得分:0)
以下是我要解决的问题:
在我执行某些检查的监听器中,如果发生错误,我将属性设置为servlet context
@Override
public void contextInitialized(ServletContextEvent sce) {
sce.getServletContext().setAttribute("checkFailed", true);
}
然后我延长了Spring的ContextLoaderListener
并覆盖contextInitialized
这样:
@Override
public void contextInitialized(ServletContextEvent event) {
if (event.getServletContext().getAttribute("checkFailed") != null) {
return;
}
super.contextInitialized(event);
}