如何以编程方式关闭 Spring Boot 应用程序不终止 VM?
在其他作品中,什么是相反的
new SpringApplication(Main.class).run(args);
最佳答案
关闭 SpringApplication
基本上意味着关闭底层的ApplicationContext
。 SpringApplication#run(String...)
方法将 ApplicationContext
作为 ConfigurableApplicationContext
提供给您。然后你可以close()
它自己。
例如,
@SpringBootApplication
public class Example {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(Example.class, args);
// ...determine it's time to shut down...
ctx.close();
}
}
或者,您可以使用 static
SpringApplication.exit(ApplicationContext, ExitCodeGenerator...)
帮助方法为你做这件事。例如,
@SpringBootApplication
public class Example {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(Example.class, args);
// ...determine it's time to stop...
int exitCode = SpringApplication.exit(ctx, new ExitCodeGenerator() {
@Override
public int getExitCode() {
// no errors
return 0;
}
});
// or shortened to
// int exitCode = SpringApplication.exit(ctx, () -> 0);
System.exit(exitCode);
}
}
关于java - 以编程方式关闭 Spring Boot 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944144/