springboot为什么运行main方法后可以一直运行?

就像我们平常的方法运行完之后就结束了,为什么boot的run方法执行之后可以一直保持运行
关注者
12
被浏览
25,282

9 个回答

Main方法运行以后是不是立马结束退出,取决于是否有进程一直在运行。

普通的Main方法里如果有while(true),也是不会退出的。

springboot本质上也是这个原理,springboot用tomcat容器运行,tomcat运行之后有个initialze方法,里面有一个while(stopAwait),一直在检查,因此并不会退出。


解析一下源代码,就可以看到这些了。

Springboot在运行XxxxApplication的main之后,启动了embed Tomcat守护线程,其实就是启动了一个内置的tomcat容器。