java - 在没有 Web 服务器的 Spring-Boot 应用程序中,保持它运行的正确方法是什么?

标签 java spring-boot daemon

我编写了一个没有嵌入式服务器的小型 spring-boot 应用程序。它旨在从命令行运行并保持运行直到 VM 收到信号。 spring-boot 框架 (v2.0) 中将应用程序作为服务保持 Activity 状态的预期方式是什么?我应该有一个 Thread.currentThread().wait();作为我 run(ApplicationArguments args) 中的最后一句话方法?是否有启用注释?

最佳答案

来自 org.springframework.boot.web.embedded.netty.NettyWebServer , 官方的。

    private void startDaemonAwaitThread(DisposableServer disposableServer) {
        Thread awaitThread = new Thread("server") {

            @Override
            public void run() {
                disposableServer.onDispose().block();
            }

        };
        awaitThread.setContextClassLoader(getClass().getClassLoader());
        awaitThread.setDaemon(false);
        awaitThread.start();
    }

关于java - 在没有 Web 服务器的 Spring-Boot 应用程序中,保持它运行的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51375629/

相关文章:

java - 复杂数学表达式的高级分词器

java - 有没有办法从具有不同属性的表中选择记录?

spring-boot - Spring Boot 不使用 Thymeleaf 提供静态内容

java - 获取Gradle守护程序以在特定的Java版本上运行

Python - 在守护进程中调用 multiprocessing.pool

java - `gradle build`停留在compileJava

java - 使用 Java + 正则表达式从文本文档中提取 URL

java - Camel 失败的核心测试用例

spring-boot - spring data mongodb聚合管道的分页结果

c - 在 C 中的特定端口上运行服务守护进程?