我有一个 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/