在 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 许可协议
如果您使用的是执行器模块,您可以通过
JMX
或HTTP
关闭应用程序(如果启用了端点)。添加到
application.properties
:以下网址将可用:
/actuator/shutdown
- 允许应用程序正常关闭(默认不启用)。根据端点的暴露方式,敏感参数可以用作安全提示。
例如,敏感端点在通过
HTTP
访问时将需要用户名/密码(或者如果未启用网络安全,则简单禁用)。来自 Spring Boot 文档