Shutdown SpringBoot App
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shutdown SpringBoot App相关的知识,希望对你有一定的参考价值。
参考技术A Shutdown SpringBoot AppSpring Boot使用ApplicationContext来创建,初始化和销毁所用的bean。本文将会讲解如何shut down一个spring boot应用程序。
Spring Boot actuator自带了shutdown的endpoint。首先我们添加pom依赖:
接下来我们需要开启shutdown的配置:
上面的配置对外暴露了 /shutdown 接口。我们可以直接这样调用:
我们也可以直接调用Application Context的close() 方法来关闭Application Context。
为了验证App是否被关闭,我们可以在TerminateBean中添加@PreDestroy来监测App是否被关闭:
这是程序的输出:
还有一种办法就是暴露close接口如下所示:
这样我们就可以通过/shutdownContext接口来关闭ApplicationContext。
上篇文章我们讲过可以通过实现ExitCodeGenerator 接口来返回特定的exit code:
熟悉shell的同学都知道如果想在外部kill一个程序,需要知道该App的pid,Spring Boot也可以很方便的生成pid:
上面的程序将会在./bin/shutdown.pid生成应用程序的pid,供shell使用。
我们可以这样使用:
本文的例子可以参考 https://github.com/ddean2009/learn-springboot2/tree/master/springboot-shutdown
更多教程请参考 flydean的博客
wpf(Application 如何创建一个事件,及其Application相关的属性)
1.如何关闭wpf程序。应用程序的关闭只有调用其shutdown方法才可以。shutdown有三种属性。OnLastWindowClose,OnMainWindowClose,OnExplicitShutdown
1)通过在App.xaml中直接设置。shutdown=“OnExplicitShutdown”;
2)第二种方式:删除App.xaml文件,自己创建一个App.cs类,在main方法中:
(建立Application对象,建立win窗体对象略)
app.shutdown=shutdownmodel.OnLastWindowClose;
app.run(win);
2.Application还有很多属性。
mainwindow 获取或者设置属性
3.这么添加一个Application事件:这里只介绍两种方式
一.在App.xaml的节点上右键,属性找到其所有的属性,在你需要的属性上绑定事件。结果如下图所示
然后在其App.xaml.cs文件中会出现这样的代码
然后在(*.csproj)这个项目文件中需要把<page>改为<applicationdefination>标签。
二.第二种方式是通过app.cs类来实现Application事件
win.show()显示窗体。
app.run(win)启动窗体
app.exit+=Application_exit;将Application方法委托给exit
void Application_exit(Objiect sender,ExitEventArgs e){}//这里的ExitEventArgs因事件的不同可能不同。sender代表对象,e代表触发的事件的一些参数。
以上是关于Shutdown SpringBoot App的主要内容,如果未能解决你的问题,请参考以下文章
关于运行springboot时报Unregistering JMX-exposed beans on shutdown的解决方案
Shutdown Hook 中的日志去哪了?log4j2 shutdown hook 机制探究
Channel shutdown: channel error; protocol method: #method channel.close (rep