你有没有这样的疑问,写代码时,main方法只是用来测试用的,上线的代码中并没有main方法,那web应用是怎么运行的?
其实,main方法在tomcat的BootStrap类中
对于JVM来说,容器tomcat和我们写的web应用代码都是java代码,web容器是作为web程序的一部分存在的,由web容器启动我们自己写的代码
tomcat的主类是BootStrap类,也是以此类的main方法作为入口启动的,web项目部署到tomcat服务器之后,启动tomcat,tomcat从它自己的主函数开始运行,就一直在跑着,等到请求过来的时候。tomcat接受到请求,它直接从项目文件中把那个没有主函数的应用拉进来,执行其中的方法。
https://blog.csdn.net/lyt_7cs1dn9/article/details/52469472
Tomcat:从启动到运行
首先,我们是通过执行 Tomcat 的startup的Shell 脚本启动 Tomcat 的,而在 Shell 脚本里,其实启动的是 JVM。Tomcat 启动以后,其实在操作系统里看到的是一个JVM 进程。
JVM进程启动以后,类加载器加载 class 进来执行,首先加载的就这个org.apache.catalina.startup.Bootstrap类,这个类里面有一个main()函数,是整个 Tomcat 的入口函数,JVM 虚拟机会启动一个主线程从这个入口函数开始执行。
网友评论