Java应用实现优雅关闭
1.实现SignalHandler 在进程被kill时收到TERM信号,对main函数的运行不会有任何影响 public class GracefulShutdownHandler implements SignalHandler { public void registerSignal(String signalName) { Signal signal = new Signal(signalName); Signal.handle(signal, this); } @Override public void handle(Signal signal) { switch (signal.getName()) { case "TERM": // break; case "INT": // break; default: } } } 2.ShutdownHook 在进程被kill的时候main函数就已经结束,仅会运行shutdownHook中run()方法的代码。 Runtime.getRuntime().addShutdownHook(new Thread() { @Override public void run() { // } }); 3.SpringBoot优雅关闭 实现TomcatConnectorCustomizer接口,用于注入tomcat的connector