apacheTomcat的Catalina类都做了什么工作

本文详细介绍了Tomcat服务器启动过程中的关键步骤和技术细节,包括如何通过Bootstrap类反射调用Catalina对象的构造方法,以及如何加载conf/server.xml配置文件来初始化Server对象及其组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  Catalina对象是被Bootstrap类反射调用构造方法创建的。

  对于启动,会调用Catalina类的load方法加载参数,其实就是得到conf/server.xml配置文件。接着,初始化临时文件目录等等初始化工作。

  里面的Server对象实例是如何初始化的呢?就是load方法里面运用digester技术初始化的Catalina对象的Server的成员的。

  之后设置server的catalina为当前对象,设置server对象的catalina.home,设置server对象的catalina.base,初始化流,最后调用server的init方法将初始化流程交给server对象。

  思考,此时catalina具有了完备的组件了,那么,catalina都有那些组件呢?

  主要的两个conf/server.xml文件,导致了初始化了唯一重要的组件Server,配置文件里面几乎全是Server的组件初始化。

  通过查看server.xml文件的结构,就可以看出组件间的包含和依赖关系。

  Catalina是这个总的类,而Bootstrap只是启动Catalina而已。

  Catalina内部包含Server,Server里面包含有Executor,Service,而Service里面包含Connector,包含Engine,而Engin里面包含Host,而Host里面包含Context,而Context就是真正的web应用。

  从server.xml结构看,Connector和Context就是不直接联系的,这一点,设计的是非常好的,利用了解耦的特点,将使用的协议和具体利用协议的应用解耦。

  

转载于:https://www.cnblogs.com/weiguangyue/p/9499018.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值