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

Spring Boot:在“应用程序运行失败”时退出jvm

夹谷星河
2023-03-14

是否有办法对“应用程序运行失败”做出反应,例如在数据库不可用的情况下?

在我的例子中,所需的行为是退出JVM进程,因此docker容器将自动重新启动

我试着听“ContextClosedEvent”,但它对启动失败案例不起作用。

共有1个答案

邴星洲
2023-03-14

对于任何需要在启动过程中杀死应用程序的人(例如在kotlin中):

@SpringBootApplication
class MyApplication

fun main(args: Array<String>) {
    val application = SpringApplication()
    application.addListeners(FailedInitializationMonitor())
    application.addPrimarySources(listOf(MyApplication::class.java))
    application.run(*args)
}

class FailedInitializationMonitor : ApplicationListener<ApplicationFailedEvent> {

    override fun onApplicationEvent(event: ApplicationFailedEvent) {
        exitProcess(1)
    }
    
}
 类似资料:
  • 我尝试了这里提到的所有解决方案,但没有一个奏效。 这里奇怪的事情是,我试图运行我的应用程序的Android模拟器的第一次,我得到了同样的错误。我从来没有在那里安装应用程序,但我得到了同样的错误。 你知道是什么导致了这个错误吗?

  • 当我尝试运行Grails 3.3.8时,我遇到了以下错误,但我不知道它是从哪里来的,我正在使用Java 8和MySQL 8.0.12和Intellj: 失败:生成失败,出现异常。 错误:任务': bootRun'执行失败。 下面是应用程序中的Hibernate配置。yml环境:开发:数据源:池:true dbCreate:创建drop driverClassName:com。mysql。jdbc。

  • 我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题

  • pom.xml============== 主类==================== 如果有人看到过类似的问题,请帮忙!

  • 我试图按照以下教程使用Bazel构建一个Android应用程序:https://docs.Bazel.build/versions/master/tutorial/android-app.html。应用程序正在通过以下命令成功构建: 但是,当我尝试使用命令运行应用程序时,生成失败,出现以下错误: 信息:分析目标//src/main:app(加载0个包,配置0个目标)。信息:发现1个目标...错误: