有没有一种方法能够在“应用程序运行失败”的情况下做出反应,例如当数据库不可用时?
在我的情况下,期望的行为是退出JVM进程,这样Docker容器就会自动重新启动。
我尝试监听“ContextClosedEvent”,但它对于启动失败的情况不起作用。
有没有一种方法能够在“应用程序运行失败”的情况下做出反应,例如当数据库不可用时?
在我的情况下,期望的行为是退出JVM进程,这样Docker容器就会自动重新启动。
我尝试监听“ContextClosedEvent”,但它对于启动失败的情况不起作用。
对于任何需要在启动过程中出现故障时终止应用程序的人(例如在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)
}
}