转载请注明出处:https://oldnoop.tech/c/186.html
配置停止服务的监听端口
在application.properties配置
shutdown.port=28082
启动类引入ApplicationContext
private static ApplicationContext atx = null;
启动类主函数
接收参数,判断是启动还是停止服务
//spring boot 优雅的 启动/停止服务
public static void main(String[] args) {
//程序执行参数
String mode = args != null && args.length > 0 ? args[0] : null;
//如果参数为stop
if (mode != null && "stop".equalsIgnoreCase(mode)) {
//则停止服务
ShutdownService.shutdown();
} else {//如果参数不为stop
//启动服务,赋值atx
atx = SpringApplication.run(SpringbootVueServerApplication.class, args);
//同时开始监听 停止服务的请求
ShutdownService.monitor();
}
}
启动类如何停止服务
//实际停止服务
public static int stop() {
int code = SpringApplication.exit(atx, new ExitCodeGenerator() {
@Override
public int getExitCode() {
System.out.println("停止应用...");
return 0;
}
});
return code;
}
停止服务类
编写停止服务类ShutdownService