java - Spring Web应用程序: Shutdown if initialization fails

标签 java spring servlets jakarta-ee

我有一个 Spring Web 应用程序。当应用程序上下文启动时,我使用 ApplicationListener<ContextRefreshedEvent>执行一些应用程序初始化,特别是我从 Web 服务加载数据。如果此 Web 服务无法访问,那么我的应用程序将无法执行任何有用的操作,并且保持其运行也没有任何意义。有没有办法以编程方式关闭应用程序上下文?

我尝试执行以下操作:

if (contextRefreshedEvent instanceof ConfigurableApplicationContext)
{
    ConfigurableApplicationContext configurableApplicationContext
            = (ConfigurableApplicationContext) contextRefreshedEvent;
    configurableApplicationContext.close ();
}

但是,而不是优雅地关闭,会产生以下异常:

java.lang.IllegalStateException:BeanFactory 未初始化或已关闭 - 在通过 ApplicationContext 访问 Bean 之前调用“刷新”

那么在这种情况下关闭应用程序的正确方法是什么?

最佳答案

抛出ApplicationContextException。它对我来说适用于 Spring 4.2.7.RELEASE

关于java - Spring Web应用程序: Shutdown if initialization fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38556557/

相关文章:

java - 需要有关使用 Maven 创建 jar 的提示

javascript - 当Java程序循环访问数千个数据时,如何显示最终用户可见的进度条?

java - 生成 JFreeChart 图形的执行时间巨大

java - 如何通过 jar 设置主类可执行文件的 vanilla groovy 项目?

mysql - Spring 与 hibernate Post 不工作

spring - 在 Webflux WebFilter 的最后执行一些逻辑

java - 当 Servlet、JSP 和轻量级 DAO 层可以工作时,为什么要使用 MVC 框架?

java - 使用 UTF-8 编码的 Tomcat 7

java - 与经济数据的比较逻辑错误 - 比较方法违反了其一般契约

java - 在单元测试中模拟注入(inject)字段