关闭Spring ApplicationContext有两种方法:
解决方案1:
ApplicationContext context = new ClassPathXmlApplicationContext(
"spring/application-context.xml");
// Application core ...
((AbstractApplicationContext) context).close();
解决方案2:
ApplicationContext context = new ClassPathXmlApplicationContext(
"spring/application-context.xml");
((AbstractApplicationContext) context).registerShutdownHook();
// Application core ...
这两种解决方案之间的区别在于哪种解决方案与性能最佳?
答案 0 :(得分:1)
解决方案1关闭应用程序上下文
解决方案2注册一个回调,因此如果JVM关闭,spring将从javadoc关闭:
向JVM运行时注册一个关闭挂钩,在JVM关闭时关闭此上下文,除非此时它已经关闭。
因此两者都是两个不同的东西,通常在创建应用程序上下文后直接调用registerShutdownHook()。因此,当您的用户终止JVM时,将调用spring并自行关闭。
你应该在应用程序结束时调用close(),以允许spring销毁它的bean。