请问 springboot 有没有类似 @EventListener(ApplicationReadyEvent.class)但是监听的是程序退出的功能?想规定在程序退出的时候做点事。谢谢

2020-03-04 08:49:42 +08:00
 Newyorkcity
谢谢
2195 次点击
所在节点    问与答
11 条回复
fmumu
2020-03-04 08:58:34 +08:00
应该有容器销毁事件的吧,或者自己注册个 shutdownHook
Sharuru
2020-03-04 09:01:27 +08:00
你要了解的可能是 Graceful Shutdown。
随便找了一篇文章可以参考一下: https://dzone.com/articles/graceful-shutdown-spring-boot-applications
MoHen9
2020-03-04 09:02:44 +08:00
有,是 interface,叫什么 ApplicationEvent,匹配对应的泛型类型,好像叫这个名字,记不太清了
nutting
2020-03-04 09:16:54 +08:00
有,这是 jvm 提供的
nutting
2020-03-04 09:17:44 +08:00
还有 spring 本身也有容器生命周期检测,有这个注解
DeadLion
2020-03-04 09:27:54 +08:00
kill -9 情况下 Graceful Shutdown 就没用了
Newyorkcity
2020-03-04 09:41:02 +08:00
@nutting 请问是什么呢?
@DeadLion 我是在 windows server 上跑,有一个 powershell 窗口,我把这个窗口关掉,算 kill -9 么?
DeadLion
2020-03-04 09:51:27 +08:00
@Newyorkcity 这个还真不清楚,kill 是 Linux 上的命令,windows server 不知道能不能生效,搜了下也没看到有用的资料。
nutting
2020-03-04 09:55:37 +08:00
Runtime.getRuntime().addShutdownHook
iamaprin
2020-03-04 12:07:55 +08:00
ContextStoppedEvent 可以试下
Vkery
2020-03-05 10:08:20 +08:00
Runtime.getRuntime().addShutdownHook

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/649633

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX