springboot是如何集成tomcat的

springboot启动的时候,main方法会执行SpringApplication.run方法-》refreshContext-》AbstractApplicationContext-》onRefresh-》。。。

首先判断servletContext是否存在,如果不存在,说明是用jar包的方式运行,如果存在,是war包方式运行。war包方式是tomcat主动运行,然后通过tomcat spi的方式传递tomcat的context 给java程序;jar包是java主动运行,然后调用tomcat启动,然后tomcat在通过spi把serveletContext传递给tomcat。

tomcat spi 是指 在tomcat运行是时候,调用项目制定的配置文件,在此配置文件中制定启动类,这样tomcat运行的时候通过反射执行启动类代码,可以把tomcat封装好的httpservlet传递给springboot项目中。

发表评论

邮箱地址不会被公开。 必填项已用*标注