Java 为什么';SpringT应用程序启动后是否立即终止?
下面是一个典型的SpringApplication实例:Java 为什么';SpringT应用程序启动后是否立即终止?,java,spring,spring-boot,Java,Spring,Spring Boot,下面是一个典型的SpringApplication实例: public class MyService { public static void main(String[] args) throws Exception { SpringApplication app = new SpringApplication(MyService.class); ApplicationContext ctx = app.run(args); } } 由于app
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终止。应用程序似乎正在创建不终止的线程
在Unix上,您可以通过在输出时向发送信号3(
kill-3
)来了解线程的状态。这可以告诉你更多。请发布一个真实的例子。该代码在run
返回时立即退出(假设它没有失败,因为它是在web环境中设置的)。