Можно ли закрыть контекст из ApplicationListener?
public class MyListener implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
// on some certain condition we want to shutdown spring ie close the context
((ConfigurableApplicationContext)event.getApplicationContext()).close();
}
}
Проблема в том, что Spring по-прежнему хочет завершить процесс запуска здесь:
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
И поэтому выдает исключение IllegalStateException:
java.lang.IllegalStateException:
org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@dcb84c98
уже закрыт