Tomcat
介绍
轻量级web应用服务器
容器架构
容器处理
Servlet启动流程解析
启动前准备
- refresh方法
- createApplicationContext方法
- 根据webApplicationType属性决定上下文
- 初始化DEFAULT_SERVLET_WEB_CONTEXT_CLASS
webServer创建入口
- refreshContext
- refresh
- onRefresh
- createWebServer
webServer创建
- getWebServerFactory
- factory.getWebServer
- 设置webServer属性
- initPropertySources
servlet启动
- refresh
- finshRefresh
- startWebServer
- publishEvent
web容器工厂类加载解析
- 配置引入
- 注解处理
- 容器工厂类引入
web容器个性化配置
属性注入
- 配置web容器属性如:server.xxx=xyz
- 注入到ServerProperties类中
- 自动配置类导入WebServerFactoryCustomizer实现类
- ServerProperties成为实现的属性
工厂初始化
- getWebServerFactory获得具体web服务工厂类
- 对具体实现类调用doGetBean进行初始化
- 遍历BeanPostProcessor实现对bean处理
- 进行WebServerFactoryCustomizerBeanPostProcessor实现方法
BeanPostProcessor方法实现
- postProcessBeforeInitialization
- getCustomizers()
- 获得所有的WebServerFactoryCustomizer实现类
- 依次调用实现类的customize方法进行定制处理