tomcat源码解析(四)——tomcat基本结构简述

本文简述Tomcat的基本结构,主要组件包括StandardServer、StandardService、StandardThreadExecutor、Connector、StandardEngine、StandardHost、StandardContext和StandardWrapper。每个关键组件在Tomcat 9中继承LifecycleMBeanBase,实现生命周期管理。Lifecycle接口定义了init、start、stop、destroy等方法,通过server.xml配置管理组件。在启动过程中,Catalina类的load方法解析配置,然后通过调用StandardServer的init和start方法来管理所有组件的生命周期。
摘要由CSDN通过智能技术生成

关于tomcat结构,其生命周期管理方式为自上而下;在tomcat6中,每一个关键组件都实现了Lifecycle接口;而在tomcat9中,每个组件都继承了LifecycleMBeanBase类,而LifecycleMBeanBase类继承了LifecycleBase类,在LifecycleBase中实现了Lifecycle接口;所以Lifecycle是管理各个重要组件生命周期的关键;

本文将以tomcat-9.0.0.M9的源码为基础;在对具体生命周期说明之前,需要了解其基本组件的结构;


这里图中只包括了最主要的几个部分,这几个类也是tomcat中最基本的实现;

StandardServer:是tomcat状态管理的主要类,通过它管理下面多个service服务,即一个tomcat管理多个web工程;

StandardService:每个web工程对应一个StandardService;

StandardThreadExecutor:线程池;

Connector:网络接口模块;

StandardEngine:执行类;

StandardHost:一般负责管理域名部分;

StandardContext:负责管理context部分;

StandardWrapper:映射具体的URL资源;

对以上各个模块认知深度还不够,但具体的理解可以分而治之,逐个部分去进行了解。


以上各组件实际上是与server.xml相互对应的,一般通过简单的配置xml就可以修改各组件的配置。

通过我对tomcat9的server.xml解析部分的源码解读;反推出了一个较为完整的文件的节点配置结构:


这上面只有节点的名称,对应的xml中配置的节点;图中的父节点指向子节点;每个节点的属性则需要在对各功能模块深入了解中,才能明白作用。

图中的server、service、engine、host、context、executor等,与基本组件相互对应。

从上图中,可以对tomcat的所有功能模块有大概的认知。从中可以发现一些较为核心的节点;例如GlobalNamingResources、Connector、Cluster、Context等,这些模块涉及功能较多,也是具体实现的关键。


接口Lifecycle中包含了对组件行为的约束,init、start、stop、destory等,以及内部的监听。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值