我有一个Spring Web应用程序。当应用程序上下文启动时,我使用ApplicationListener<ContextRefreshedEvent>
来执行一些应用程序初始化,特别是我从Web服务加载数据。如果无法访问此Web服务,那么我的应用程序无法执行任何有用的操作,并且保持其运行没有意义。有没有办法以编程方式关闭应用程序上下文?
我尝试过以下操作:
if (contextRefreshedEvent instanceof ConfigurableApplicationContext)
{
ConfigurableApplicationContext configurableApplicationContext
= (ConfigurableApplicationContext) contextRefreshedEvent;
configurableApplicationContext.close ();
}
然而,优雅地关闭会产生以下异常:
java.lang.IllegalStateException:BeanFactory未初始化或已经关闭 - 调用&#39;刷新&#39;在通过ApplicationContext访问bean之前
那么在这种情况下关闭应用程序的正确方法是什么?
答案 0 :(得分:0)
抛出ApplicationContextException
。它适用于Spring 4.2.7.RELEASE