当前位置: 首页 > 知识库问答 >
问题:

使用Intellij Idea捕获Spring-boot应用程序的外部jar停止事件

元嘉木
2023-03-14

为了在生产环境中启动我的Spring Boot应用程序,我的公司有一个执行“java-jar”的系统,我试图在我的Intellij思想中模拟它,并且jar可以正确启动,我也可以用proyect源代码进行调试。

在运行和调试模式下,当我单击stop按钮时,jar突然停止,并显示消息

Disconnected from the target VM, address: '127.0.0.1:58575', transport: 'socket'

Process finished with exit code -1

并且我无法捕获关闭事件来关闭我的DB连接。我尝试了其他stackoverflow解决方案,如在Main中运行的SpringApplication中的PortalServiceLifeCycle、@Predestroy和setRegisterShutdownHook(false)。

Jar是由Maven使用clean和package目标创建的,我们没有xml spring配置,只有注释。

我需要什么捕捉关闭服务关闭连接?

共有1个答案

傅毅然
2023-03-14

请检查这个答案。

此功能在调试模式下尚不可用。

该特性也不适用于JAR运行配置,但可用于应用程序运行配置。

 类似资料:
  • 是否有一种干净的方法来检测spring启动应用程序何时停止,并在停止之前执行一些操作?一种停止服务的CommandLineRunner 提前谢谢

  • 我有一个spring-boot应用程序,我想用外部配置文件运行它。当我将其作为jar(带有嵌入式servlet容器)运行时,一切都很好。但是我想在外部servlet容器(Tomcat)下运行它,这里我遇到了外部配置的问题。我尝试了@PropertySource,但在这种情况下,应用程序只获得war文件配置中没有的属性:外部配置不会覆盖内部配置。那么问题是:我如何配置外部配置,它将覆盖内部配置?

  • 我有几个Spring Boot应用程序JAR,它们是通过运行启动的: 我想要停止一个特定的Spring Boot应用程序(例如),但当我列出所有正在运行的进程时,我会有一个列表,如下所示: 我如何停止特定的Spring Boot过程?

  • 我正在开发一个spring boot应用程序 我想用外部文件(例如)重写中的某些属性。 我尝试了几种方法: 中的“我的应用程序.属性”中的 我使用对其进行了测试。第一个方法只添加了属性,但没有重写它们。

  • 基本上,我想使用spring boot auto配置数据源相关功能,并希望将spring boot应用打包到一个war,并部署到Tomcat。 github URL:https://github.com/oneslideicywater/customlizeofkakahair运行MVN构建后,我跳过测试,将部署到TomCat,重新启动它,然后在STS IDE中运行应用程序时,一切都很好。但是会发

  • 我有一个配置类,如下所示: 在这里之前的所有内容都定义在一个打包的jar中,我在spring boot应用程序中使用它作为依赖项 在Spring Boot应用程序中,我导入了,并调试了代码,看到创建了bean。 这是类,用于导入: 它加载了Spring的自动配置加载。