Я пытаюсь добавить крючок выключения через Runtime.getRuntime().addShutdownHook()
в приложении Spring Gradle.
Я попытался добавить подкласс анонимного потока в класс Application.java из этого учебника. Чтобы это выглядело так:
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
Thread thread = new Thread() {
public void run() {
System.out.println("Shutdown Thread!");
}
};
Runtime.getRuntime().addShutdownHook(thread);
SpringApplication.run(Application.class, args);
}
}
Однако я не вижу желаемого поведения: печать «Shutdown Thread!» при выходе из приложения. Что здесь происходит не так?
редактировать: я закрывал его, используя control + c
на терминале, где он работает. Я запускаю его на терминале OSX
System.out.flush()
. Возможно, ваша консоль отправляет сигнал принудительного уничтожения JVM (kill -9) при нажатии ctrl+c, стоит попробовать отключить JVM более изящно, например.SpringApplication.exit
илиSystem.exit()
- person helospark   schedule 26.11.2017