为了在生产环境中启动我的 Spring Boot 应用程序,我的公司有一个执行“java -jar”的系统,我试图在我的 Intellij idea 中模拟它,并且 jar 正确启动,我也可以使用项目源进行调试。
在运行和 Debug模式下,当我单击停止按钮时,jar 会突然停止并显示消息:
Disconnected from the target VM, address: '127.0.0.1:58575', transport: 'socket'
Process finished with exit code -1
而且我无法捕获关闭事件来关闭我的数据库连接。我尝试过其他 stackoverflow 解决方案,例如 PortalServiceLifeCycle , @PreDestroy和 setRegisterShutdownHook(false) in SpringApplication run in main .
Jar 是由 Maven 创建的,具有干净和打包的目标,我们没有 xml spring 配置,只有注释。
我需要什么来捕捉关闭服务来关闭连接?
编辑:添加我的 Intellij 按钮:
谢谢。
最佳答案
此功能是 not available尚未处于 Debug模式。
此功能也不适用于JAR运行配置,但可用于应用程序运行配置。
您可以使用远程调试和外部控制台中的 Ctrl+C 来调试关闭 Hook 中的代码,直到 IDEA-171093已实现。
关于java - 使用 Intellij Idea 捕获 Spring-boot 应用程序的外部 jar 停止事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50619453/