如何通过按Control-C终止Windows中的Spring Boot应用程序



如果我从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
      }
    }

我尝试将以下代码添加到上述listererclass,但并未解决此问题:

  @EventListener
  public void handleContextStop(ContextStoppedEvent event) {
      shutdown();
  }

按下Control-C时,如何导致应用程序终止?

未达到您的侦听器(使用调试器验证)。否则system.exit将杀死所有线程 - 顺便说一句,这是不良练习。

您应该通过JVisualVM连接到JVM,并在击中 ^C

后检查实时线程(S)

相关内容

  • 没有找到相关文章

最新更新