Tomcat源码-换个角度看架构和核心流程

简介: Tomcat源码-换个角度看架构和核心流程

一、  换个角度看架构


1.Connector


  Connector连接器接收外界请求,然后转换为对应的ServletRequest对象。


image.png

涉及到的几个对象的作用:

image.png

  在有多线程处理的情况下,通过Executor线程池来处理:


image.png

官网的流程图:tomcat.apache.org/tomcat-8.5-…


image.png



2.Container


Container容器是在Connector处理完请求后获取到ServletRequest后内部处理请求的统一管理对象。

image.png


而需要把上面这个图的内容搞清楚,直接看代码的话还是比较头晕的,这时我们可以结合Tomcat的运行过程来分析




二、Tomcat核心流程


image.png

1.Bootstrap


  Bootstrap是Tomcat的入口类,相关的核心方法:


  • init():自定义类加载器和创建Catalina方法


  • load():会完成相关对象的初始化


  • start():启动各种对象的start()方法


  • ....


  initClassLoaders()完成了自定义类加载器。JVM中提供的类加载器是双亲委派模式,在Tomcat中自定义了加载方式。打破了双亲委派模型:先自己尝试去加载这个类,找不到再委托给父类加载器。通过复写findClass和loadClass实现。




2.Catalina


  完成server.xml文件的解析,完成Server组件并具体调用相关的组件的init和start方法



3.Lifecycle


  统一管理各个组件的生命周期,init,start,stop,destory方法,对应的实现是LifecycleBase实现了Lifecycle中的生命周期相关逻辑,用到了模板设计模式。



4.Server



  管理Service组件,并调用其init和start方法



5.Service


  管理Connector和Engine



6.Connector


7.Container


Container容器是在Connector处理完请求后获取到ServletRequest后内部处理请求的统一管理对象。


image.png

init方法

image.png


start方法


image.png

Container的处理过程

image.png

最后看看StandardHost是如何来实现Web项目部署的

image.png



相关文章
|
1月前
|
移动开发 供应链 Java
企业级智能制造MES系统源码,技术架构:springboot + vue-element-plus-admin
企业级智能制造MES系统源码,技术架构:springboot + vue-element-plus-admin。 企业级云MES全套源码,支持app、小程序、H5、台后管理。 生产调度:MES系统可以根据生产订单和资源状况,自动计算生产计划和调度,从而优化生产线的运作。
企业级智能制造MES系统源码,技术架构:springboot + vue-element-plus-admin
|
1月前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
35 2
|
1天前
|
前端开发 Java 开发工具
Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统
系统开发环境 开发语言:java 技术架构:B/S架构 开发工具:maven、Visual Studio Code 前端框架:avue 后端框架:springboot、mybaits 数 据 库:MySQL
16 4
Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统
|
7天前
|
Java 应用服务中间件 API
Tomcat处理一个HTTP请求的执行流程的详细解析
Tomcat处理一个HTTP请求的执行流程的详细解析
16 4
|
1月前
|
存储 监控 供应链
一款数字化管理平台源码:云MES系统(附架构图、流程、)
制造生产企业打造数字化生产管控的系统,从原材料、生产报工、生产过程、质检、设备、仓库等整个业务流程的管理和控制,合理安排生产计划、实时监控生产、优化生产工艺、降低不良产出和运营成本;
62 8
一款数字化管理平台源码:云MES系统(附架构图、流程、)
|
13天前
|
监控 安全 自动驾驶
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
基于java+单体服务 + 硬件(UWB定位基站、卡牌)技术架构开发的UWB室内定位系统源码 UWB定位技术 超宽带定位 高精度定位系统源码
28 3
|
14天前
|
监控 Java 关系型数据库
java版MES系统源码,后端采用 Spring Boot 多模块架构
MES系统采用Vue3的vue-element-plus-admin为后台,Spring Boot多模块架构,支持MySQL、Oracle等数据库,具备SaaS多租户功能。核心功能包括车间计划排程、工艺流程配置、生产质量管理、进度追踪、库存和排班管理等,全面覆盖生产运营关键环节。
java版MES系统源码,后端采用 Spring Boot 多模块架构
|
30天前
|
供应链 安全 Java
如何挑选一个合适的HIS系统? 基于B/S架构,JAVA语言,springboot最新技术栈开发的整套云HIS系统源码 HIS源码
最近有很多人在询问,有没有最优秀的HIS系统?在这里小编是没办法回答的。为什么呢?
44 0
如何挑选一个合适的HIS系统? 基于B/S架构,JAVA语言,springboot最新技术栈开发的整套云HIS系统源码 HIS源码
|
1月前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
43 2
|
1月前
|
Java 关系型数据库 MySQL
java+B/S架构医院绩效考核管理系统源码 医院绩效管理系统4大特点
医院绩效考核管理系统,采用多维度综合绩效考核的形式,针对院内实际情况分别对工作量、KPI指标、科研、教学、管理等进行全面考核。医院可结合实际需求,对考核方案中各维度进行灵活配置,对各维度的权重、衡量标准、数据统计方式进行自定义维护。
30 0