> 文章列表 > Springboot如何启动内嵌tomcat

Springboot如何启动内嵌tomcat

Springboot如何启动内嵌tomcat

只需要引入如下依赖即可: 

 1.首先判断容器类型,这里是servlet类型

org.springframework.boot.WebApplicationType#deduceFromClasspath

2.根据容器类型创建容器:

org.springframework.boot.SpringApplication#createApplicationContext 

看下类图结构:

 

 

3.刷新容器:

自然是调用父类的刷新方法

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#refresh

最后回调到父类的方法:

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#onRefresh

 4.看下如何创建tomcat对象,然后启动容器:

org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext#getWebServerFactory

这里为什么能拿到tomcat的容器:,后续自动装配详细解释 

org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory#getWebServer

 到此tomcat启动结束。

我们看看如何自动注入tomcat的?

org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration

org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration

 

org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryConfiguration

 

就这样制动注入一个tomcat的工厂结束了,整个web启动就结束了