这是一个典型的 SpringApplication 实例:
public class MyService {
public static void main(String[] args) throws Exception {
SpringApplication app = new SpringApplication(MyService.class);
ApplicationContext ctx = app.run(args);
}
}
由于 app.run(args)
是一个非阻塞调用,因此该应用程序的 main
方法在调用后立即返回。我一直认为应用程序会在您从 main
返回时终止。
为什么 SpringApplication
继续运行,即使我们已经从 main
返回?
最佳答案
JVM 终止 when the last non-daemon thread完成。您的应用程序似乎正在创建不会终止的线程。
在 Unix 上,您可以通过将信号 3 ( kill -3 <java-pid>
) 发送到 get a thread dump 来了解线程的状态。在输出上。这可以告诉您更多信息。
关于java - 为什么SpringApplication启动后不立即终止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32238564/