知识点回顾
springboot嵌入式Servlet容器
- 默认支持的webServer
- Tomcat,Jetty, or Undertow
- ServletWebServerApplicationContext容器启动寻找ServletWebServerFactory并引导创建服务器
- 切换服务器
- JettyWebServer
- NettyWebServer
- TomcatWebServer
- UndertowWebServer
- 原理
- SpringBoot应用启动发现当前是Web应用,web场景包导入tomcat
- web应用会创建一个web版的ioc容器ServletWebServerApplicationContext
- ServletWebServerApplicationContext启动的时候寻找ServletWebServerFactory(Servlet的web服务器工厂—> Servlet的web服务器);TomcatServletWebServerFactory,JettyServletWebServerFactory,or UndertowServerFactory
- 底层直接会有一个自动配置类,ServletWebServerFactoryAutoConfiguration
- ServletWebServerFactoryAutoConfiguration导入了ServletWebServerFactoryConfiguration(配置类)
- ServletWebServerFactoryConfiguration配置类,根据动态判断系统中到底导入了哪个Web服务器的包。(默认是web-server导入tomcat包),容器中就有TomcatServletWebServerFactory
- TomcatServletWebServerFactory创建出Tomcat服务器并启动,TomcatWebServer的构造器拥有初始化方法initialize----this.tomcat.start();
- 内嵌服务器,就是手动把启动服务器的代码调用(tomcat核心jar包存在)
雷丰阳2021版SpringBoot2零基础入门springboot全套完整版(spring boot2)_哔哩哔哩_bilibili