一、生命周期统一接口Lifecycle:
在自定义Mini-Tomcat之动态资源访问实现中已分析tomcat的两个功能,通过server.xml配置可以进行设置。下面看看Tomcat的实际的server.xml配置:
从配置结构看,Tomcat内部架构中各个核心组件是包含于被包含的关系,往下层层包含。其以容器的方式来组织整个系统架构,类似数据结构中的树——父节点没有其他节点,其他节点有且仅有一个父节点,每个父节点有零个或多个子节点。如下图:
鉴于此架构,可以通过父容器启动其子容器,这样只要启动根容器就可以把其他所有容器都启动,达到统一启动、停止、关闭的效果。调试代码发现解析server.xml后进行各组件初始化的过程中始终调用LifecycleBase中的init方法,通过UML图分析结构如下:
所以可知Tomcat架构设计了一个用Lifecycle管理启动、停止、关闭所有组件的统一接口。LifeCycle定义如下:
二、生命周期状态转化
查看顶层接口Lifecycle相关信息,其定义了实现了其接口组件的生命周期中的所有状态。具体状态转换如下图:
图中状态转化的触发点清晰标注,有auto,有通过方法触发。这些状态的定义在枚举LifecycleState中:
三、生命周期事件监控
在Lifecycle的UML图中有一个Listener的接口,简化该UML中类并添加一个Event类,如下:
可以参考Spring常用配置之Application Event(事件)。
标签:容器,生命周期,Tomcat,管理,接口,节点,Lifecycle From: https://www.cnblogs.com/ilovebath/p/18154589