tomcat lifecyclelistener_Tomcat源码学习笔记

v2-5be3a5fbddeab6ddb6b4af6ff2e6890c_b.jpg

①BootStrap类:tomcat 的启动流程很标准化,入口是BootStrap,统一按照生命周期管理接口Lifecycle的定义进行启动。首先,调用init()方法逐级初始化,接着调用start()方法进行启动,同时,每次调用伴随着生命周期状态变更事件的触发。main 方法是整个tomcat 启动时的入口。在main 方法中,使用bootstrap.init()来初始化类加载器和创建Catalina 实例,然后再启动Catalina 线程。

②Catalina组件的Lifecycle接口:Lifecycle 提供一种统一的管理对象生命周期的接口。通过Lifecycle、LifecycleListener、LifecycleEvent,Catalina 实现了对tomcat 各种组件、容器统一的启动和停止的方式。在Tomcat 服务开启过程中启动的一些列组件、容器, 都实现了org.apache.catalina.Lifecycle 这个接口,其中的init()、start() 方法、stop() 方法,为其子类实现了统一的start 和stop 管理。

③load 方法解析server.xml 配置文件:

load 方法解析server.xml 配置文件,并加载Server、Service、Connector、Container、Engine、Host、Context、Wrapper 一系列的容器。加载完成后,调用initialize()来开启一个新的Server。

④4.3Digester 类解析server.xml 文件:

利用Digester 类解析server.xml 文件,得到容器的配置。

⑤StandardServer

5.1service.initialize()

然后拿到StandardServer 实例调用initialize()方法初始化Tomcat 容器的一系列组件。一些容器初始化的的时候,都会调用其子容器的initialize()方法,初始化它的子容器。顺序是StandardServer、StandardService、StandardEngine、Connector。每个容器都在初始化自身相关设置的同时,将子容器初始化。

v2-f67ce64e7ca6a096737d8b93d2070192_b.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值