Как закрыть spring ApplicationContext?
после завершения моего приложения я хочу закрыть весенний контекст.
Соответствующий код имеет ApplicationContext
ссылки, но я не мог найти close
метод.
5 ответов:
потупив свой
ApplicationContext
доConfigurableApplicationContext
определяетclose()
способ:((ConfigurableApplicationContext)appCtx).close();
вам нужно зарегистрировать крюк выключения с JVM, как показано ниже:
((AbstractApplicationContext)appCtx).registerShutdownHook();
дополнительная информация: Spring руководство: 3.6.1.6 выключение контейнера Spring IoC изящно в не-веб-приложениях
Если вы инициализируете контекст, как показано ниже
ApplicationContext context = new ClassPathXmlApplicationContext(beansXML);
чистый контекст, как эти
((ClassPathXmlApplicationContext) context).close();
Если Java SE 7 и позже, не закрывайте, используйте try-with-resources, который гарантирует, что каждый ресурс будет закрыт в конце инструкции.
try(final AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"classpath*:META-INF/spring/*.xml" })) { //write your code }
шаги, чтобы закрыть
ApplicationContext
объект
- тип приведения
ApplicationContext
объектConfigurableApplicationContext
"объект".- затем вызовите близкий объект на этом.
пример:
ApplicationContext context = new ClassPathXmlApplicationContext("mybeans.xml"); ((ConfigurableApplicationContext)context ).close();