如何closures一个Spring ApplicationContext?
我的应用程序完成后,我想closuresspring的上下文。
相关的代码有一个ApplicationContext
引用,但是我找不到一个close
方法。
将您的ApplicationContext
到定义close()
方法的ConfigurableApplicationContext
中:
((ConfigurableApplicationContext)appCtx).close();
您需要使用JVM注册一个closures钩子,如下所示:
((AbstractApplicationContext)appCtx).registerShutdownHook();
有关更多信息,请参阅: Spring Manual:3.6.1.6在非Web应用程序中正常closuresSpring IoC容器
如果你初始化下面的一个上下文
ApplicationContext context = new ClassPathXmlApplicationContext(beansXML);
像这些干净的上下文
((ClassPathXmlApplicationContext) context).close();
如果Java SE 7和更高版本不closures,请使用try-with-resources确保在语句结束时closures每个资源。
try(final AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath*:META-INF/spring/*.xml" })) { //write your code }
closuresApplicationContext
对象的步骤
- types将
ApplicationContext
对象转换为ConfigurableApplicationContext
对象。 - 然后调用closures的对象。
例:
ApplicationContext context = new ClassPathXmlApplicationContext("mybeans.xml"); ((ConfigurableApplicationContext)context ).close();