最近在做springboot项目
springboot内置了tomcat,但却不明白之间的关系,以为是springboot启动了,加载了tomcat,然后执行的,原来是不对的。

tomcat启动

在tomcat中有一个bootstarp类
在这里插入图片描述

在这里插入图片描述
就是他启动会去加载jar包然后执行的。

当执行了tomcat中startup的shell脚本,就会启动jvm,然后使用类加载器,加载Bootstart类,该类会执行main方法,去加载webapp下的war. web项目就启动起来了

Springboot与tomcat的关系

springboot先启动会创建根上下文webapplicationcontext,然后通过createWebServer逐步创建tomcat(createWebServer->TomcatServletWebServerFactory 工厂创建 TomcatWebServer->tomcat->去执行startup) 初始化时会将根上下文传入。

参考文章 Tomcat组件梳理—Bootstrap启动器
Spring boot,Tomcat容器之间关系以及请求执行流程
JavaWeb项目没有main怎么跑
SpringBoot是如何使用tomcat的
Spring boot,Tomcat容器之间关系以及请求执行流程

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐