当前位置: 首页 > news >正文

springboot 加载 tomcat 源码追踪

加载 TomcatServletWebServerFactory 

从  SpringApplication.run()方法进入 

进入到 refresh () 方法

选择实现类  ServletWebServerApplicationContext

 进入到  AbstractApplicationContext

 onRefresh() 方法创建容器

 找到加载bean

得到 webServer 实例

 点击 getWebServer()

 其实现类

 如何知到是哪个实现类呢?接着往下看

自动装配 TomcatServletWebServerFactory

在 spring-boot-autoconfigure 包下找到 spring-autoconfigure-metadata.properties 文件

搜索  javax.servlet.ServletRequest  找到 

ServletWebServerFactoryAutoConfiguration 

核心就在  org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration 

这个配置类中

点击 EmbeddedTomcat.class 进入  ServletWebServerFactoryConfiguration

该类根据项目中是否含有指定的类来加载对应的容器,并创建 ServletWebServerFactory

tomcat 

jetty

Undertow

当 摁下 ctrl 可以跳转,则整明该项目下有这个类,

根据  @ConditionalOnClass 注解 则可以加载  EmbeddedTomcat

否则不能加载

项目因引入该依赖,从而引入了 tomcat 容器

至此, TomcatServletWebServerFactory  随着项目启动加载到了 spring 管理的 bean 当中

上文便可以获取到该工厂,初始化 tomcat 容器。

http://www.dtcms.com/a/180225.html

相关文章:

  • 《 指针变量的创建:初探内存世界的钥匙》
  • 水印云:AI赋能,让图像处理变得简单高效
  • zst-2001 历年真题 UML
  • Babylon.js学习之路《二、开发环境搭建与第一个Hello World》
  • 在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南)
  • JavaSE核心知识点02面向对象编程02-04(包和导入)
  • 【NCCL】DBT算法(double binary tree,双二叉树)
  • 工业设计破局密码:3D 可视化技术点燃产业升级引擎
  • 13.原生测试框架Unittest解决用例组织问题 与测试套件的使用
  • 多视图密集对应学习:细粒度3D分割的自监督革命
  • 【Axios】解决Axios下载二进制文件返回空对象的问题
  • MapReduce报错 HADOOP_HOME and hadoop.home.dir are unset.
  • 课程审核流程揭秘:确保内容合规与用户体验
  • 高频算法面试题总结
  • 【25软考网工】第六章 网络安全(1)网络安全基础
  • 【MYSQL错误连接太多】
  • 如何构建容器镜像并将其推送到极狐GitLab容器镜像库?
  • 自定义prometheus exporter实现监控阿里云RDS
  • 5月9号.
  • 数据分析怎么做?高效的数据分析方法有哪些?
  • 多容器运行
  • Python训练营打卡DAY20
  • Android应用隐私合规:解决极光推送SDK提前收集WiFi信息问题
  • 三维底座+智能应用,重构城市治理未来
  • 【计算机视觉】OpenCV项目实战:get_inverse_perspective:基于OpenCV的透视图转化为不同平面
  • Uniapp编写微信小程序,使用canvas进行绘图
  • 企业如何将钉钉付款单高效集成到金蝶云星空?
  • 数智读书笔记系列032《统一星型模型--一种敏捷灵活的数据仓库和分析设计方法》
  • 开源数字人框架 AWESOME - DIGITAL - HUMAN:技术革新与行业标杆价值剖析
  • 从“山谷论坛”看AI七剑下天山