如何在启动期间终止 Spring 应用程序?

egb*_*kul 5 spring spring-boot

我有一个 Spring Boot 应用程序,它具有一些外部依赖项(例如,项目外部的文件需要存在才能使应用程序正常启动)。

我的一个 bean 有一个@PostConstruct进行初始化的方法。如果初始化不成功,我想干净优雅地退出 - 例如,找不到文件。

调用((ConfigurableApplicationContext)applicationContext).close();@PostConstruct方法会导致

java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context
Run Code Online (Sandbox Code Playgroud)

以及一系列其他异常。有没有办法正确地做到这一点?

Lho*_*Ben -2

您可以使用 Sytem exit 静态方法,它终止当前正在运行的 Java 虚拟机。传递的代码指示终止状态。按照惯例,非零状态代码表示异常终止。

经验:

System.exit(0);
Run Code Online (Sandbox Code Playgroud)