java - 以编程方式关闭 Spring Boot 应用程序

标签 java spring spring-boot

如何以编程方式关闭 Spring Boot 应用程序不终止 VM

在其他作品中,什么是相反的

new SpringApplication(Main.class).run(args);

最佳答案

关闭 SpringApplication基本上意味着关闭底层的ApplicationContextSpringApplication#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/

相关文章:

java - 带有日历的 Java 中的天数枚举

javascript - Spring Boot Env Actuator Endpoint - 使用 Javascript 获取当前属性

java - Spring Boot 2.1.9.RELEASE - 读取资源文件

java - 从 csv 文件中打乱问题并将数字放在它们前面

java - 无法获取 MimeMessage 的 message_ID

java - 如何在 Java 中将访问者用于 AST

java - 使用 spring-boot-maven-plugin 从独立 JAR 中排除 .xml 和属性

java - Spring - 请求的资源不可用

spring 组件扫描类

java - Junit 在内存数据库中使用 h2 测试 @getmappings