02. Spring Boot Web 集成原理
2022-03-20 13:59:44 0 举报
AI智能生成
Spring Boot Web 启动原理
作者其他创作
大纲/内容
ServletWebServerFactoryAutoConfiguration.BeanPostProcessorsRegistrar.classWeb 服务器工厂定制化器的后置增强处理器
TomcatServletWebServerFactory如果当前环境是 Tomcat,给容器导入组件
ServletWebServerFactoryConfiguration.EmbeddedTomcat.class
JettyServletWebServerFactory如果当前环境是 Jetty,给容器中导入这个组件
ServletWebServerFactoryConfiguration.EmbeddedJetty.class
UndertowServletWebServerFactory如果当前环境是 Undertow,给容器中导入这个组件
ServletWebServerFactoryConfiguration.EmbeddedUndertow.class
ServletWebServerFactoryAutoConfigurationSpring Boot 提供的自动装配类通过 Imort 导入这 4 个组件
DispatcherServletConfiguration向容器中导入【DispatcherServlet】组件
DispatcherServletRegistrationConfiguration向容器中导入【DispatcherServletRegistrationBean】组件它主要是保存【DispatcherServlet】组件信息,同时实现了【ServletContextInitializer】接口
DispatcherServletAutoConfigurationSpring Boot 提供的自动装配类
getSelfInitializer()从容器中获取所有的【ServletContextInitializer】
tomcatProtocolHandlerCustomizers定制化协议
tomcatConnectorCustomizers定制化连接器
customizeConnector(connector)定制化协议和连接器
TomcatStarter(initializers)初始化一个 TomcatStarter,并且将 initializers 保存在 TomcatStarter同时把 TomcatStarter 保存在 context 上下文中
tomcatContextCustomizers定制化 context 上下文
configureContext()配置 context 上下文
prepareContext()初始化上下文环境
this.tomcat.start()启动 Tomcat
initialize()调用初始化方法
getTomcatWebServer()初始化【TomcatWebServer】服务器
factory.getWebServer()从容器中查找 ServletWebServerFactory然后创建真正的 Tomcat 容器
createWebServer()创建 web 容器
onRefresh()在这里会回调子类的 onRefresh() 方法
AnnotationConfigServletWebServerApplicationContext.refresh()它是 Spring Boot 应用创建的 IOC 容器启动时会调用 refresh() 方法进行刷新
getServletContextInitializerBeans()从容器中获取所有的【RegistrationBean】类型
beans.onStartup()挨个调用 onStartup() 方法
selfInitialize()调用自身的初始化方法
TomcatStarter.onStartup()回调所有 initializers 的 onStartup() 方法
ServletContainerInitializer.onStartup()Tomcat 在启动时会回调这个接口的方法
Spring Boot Web 集成原理
0 条评论
回复 删除
下一页