为什么spring boot应用程序不能正常退出?

yuy*_*u33 5 java spring spring-mvc intellij-idea spring-boot

我在Intellij(Linux上的13.1.5)上使用bootRun任务运行一个spring启动应用程序,我试图在生命周期回调中关闭一个监听器线程,但是当在Intellij中停止应用程序时,我发现我的监听器线程仍然是运行和记录.

  1. 在控制台中:

    "与目标虚拟机断开连接,地址:...,传输:'socket'6:39:22 AM:外部任务执行完成'bootRun'."

  2. 然后我做了ps grep并杀了进程,然后才控制台打印:

    "2016-03-28 06:39:59.606 INFO 7740 --- [Thread-1] ationConfigEmbeddedWebApplicationContext:关闭org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@657617e6:... 2016-03-28 06:39: 59.611 INFO 7740 --- [Thread-1] osjeaAnnotationMBeanExporter:在关闭时取消注册JMX暴露的bean"

我的问题:

  1. 为什么要停止Intellij中的app而不关闭应用程序上下文?
  2. 根据Doc,Spring Web应用程序自动注册关闭钩子.但是我试过@PreDestroy,destroMethod,并实现了LifeCycle,为什么没有人被调用?