如果我从 Windows 命令提示符(使用 java -jar)中运行 Spring Boot 应用程序,然后按 Control-C 终止进程,我会得到以下控制台输出,并且进程保持打开状态:
2017-11-27 20:15:22,713 INFO [Thread-11] (AnnotationConfigEmbeddedWebApplicationContext:984) - Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@6057aebb: startup date [Mon Nov 27 20:14:22 IST 2017]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2df9b86
我使用以下代码来监听 ContextClosedEvent。
@Component
public class ListenerClass {
@EventListener
public void handleContextClose(ContextClosedEvent event) {
shutdown(); // This method has System.exit(SpringApplication.exit(ctx)); inside it
}
}
我尝试将以下代码添加到上述 ListenerClass 中,但并没有解决此问题:
@EventListener
public void handleContextStop(ContextStoppedEvent event) {
shutdown();
}
按下 Control-C 时,如何使应用程序终止?