如何以正确的方式关闭 Spring Boot 应用程序?

新手上路,请多包涵

在 Spring Boot 文档中,他们说“每个 SpringApplication 都会向 JVM 注册一个关闭挂钩,以确保 ApplicationContext 在退出时正常关闭。”

当我在 shell 命令上单击 ctrl+c 时,应用程序可以正常关闭。如果我在生产机器上运行应用程序,我必须使用命令 java -jar ProApplicaton.jar 。但是我不能关闭shell终端,否则会关闭进程。

如果我运行 nohup java -jar ProApplicaton.jar & 类的命令,我不能使用 ctrl+c 优雅地关闭它。

在生产环境中启动和停止 Spring Boot 应用程序的正确方法是什么?

原文由 Chris 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 541
1 个回答

如果您使用的是执行器模块,您可以通过 JMXHTTP 关闭应用程序(如果启用了端点)。

添加到 application.properties

endpoints.shutdown.enabled=true

以下网址将可用:

/actuator/shutdown - 允许应用程序正常关闭(默认不启用)。

根据端点的暴露方式,敏感参数可以用作安全提示。

例如,敏感端点在通过 HTTP 访问时将需要用户名/密码(或者如果未启用网络安全,则简单禁用)。

来自 Spring Boot 文档

原文由 Jean-Philippe Bond 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题