第一次接触到“生命周期”这个词汇,是在软件工程的课程上,“软件的生命周期”,当时也是觉得有点玄,但还算可以理解:软件从需求分析到最后没人用,就像人的一生(人的“需求分析”是什么呢?这是个哲学问题...)
扯远了,回到tomcat。tomcat的“生命周期”非常简单,说白了是一个接口:org.apache.catalina.Lifecycle,内容如下:
public interface Lifecycle {
public static final String START_EVENT = "start";
public static final String BEFORE_START_EVENT = "before_start";
public static final String AFTER_START_EVENT = "after_start";
public static final String STOP_EVENT = "stop";
public static final String BEFORE_STOP_EVENT = "before_stop";
public static final String AFTER_STOP_EVENT = "after_stop";
public void addLifecycleListener(LifecycleListener listener);
public LifecycleListener[] findLifecycleListeners();
public void removeLifecycleListener(LifecycleListener listener);
public void start() throws LifecycleException;
public void stop() throws LifecycleException;
}
看清楚了,其实就是一些常量加上start、stop这些方法。
那么这个接口存在的意义是什么呢?这其实和tomcat的架构有关,因为tomcat是以“容器”的方式来组织的,在前面的几章中也提到了,容器是
以树结构组织的,也就是除了根容器之外,其他容器肯定都有且仅有一个父容器,一层套一层。tomcat的启动一般是通过Bootstrape类来完成的,
这个类会调用根节点容器的启动方法。但是那么多的子容器怎么办呢,Bootstrape不可能一一启动它们;需要关闭tomcat时也是如此。唯一的办法
是定义一个统一的接口,把所有的启动、停止等与“生命周期”有关的方法组织到一块,这个接口就是Lifecycle。就好像人over了一般都要去殡仪
馆,还要做个户籍注销...
因此,一般容器的start方法里面,都会它所包含的子容器和其他实现了生命周期接口的组件的start方法,子容器又以此类推递归调用它们的子容器,整个tomcat就跑起来了~
Lifecycle Listener
Lifecycle 当然不会仅仅有start和stop这么简单,它还引入了类似GUI编程的“事件——监听”机制。具体来说就是
org.apache.catalina.LifecycleListener 接口,内容非常简单,就一个
lifecycleEvent(LifecycleEvent event) 方法,用于接收相应的事件。如果你接触过GUI编程,特别是java
swing,猜也能猜到tomcat怎么做了——首先注册listener,然后在start或者stop方法中,把相应的“事件”传递给所有已注册的监
听器
至于有哪些“事件”呢?上面的接口定义里面已经告诉我们了,不再啰嗦
总的来说,这一章的内容还是非常好理解的。
分享到:
相关推荐
《How Tomcat Works》这本书是理解Apache Tomcat服务器工作原理的重要资源,第三章主要探讨了Tomcat的架构和核心组件。以下是对这部分内容的详细解读: Tomcat作为一款开源的Java Servlet容器,其核心功能是解析...
《How Tomcat Works》中文版笔记详细介绍了Apache Tomcat的内部架构和运行机制,Tomcat是一个广泛使用的Java开源Web服务器和Servlet容器,它为处理基于Java的Web应用提供平台。本书不仅深入分析了Tomcat的核心组件和...
在深入探讨Tomcat源码之前,我们先了解一下Tomcat是什么。Tomcat是一款开源的Java Servlet容器,由...通过阅读《How Tomcat Works》并结合实际项目实践,你将能够逐步揭开Tomcat的神秘面纱,掌握这个强大工具的精髓。
第六章生命周期 第七章日志记录器 第八章加载器 第九章会议管理 第十章应用程序 第十一章StandardWrapper 第十二章StandardContext 第十三章主机和引擎 第十四章服务器组件和服务组件 第十五章消化器库 第十六章关闭...
#### 1.15《How Tomcat Works》读书笔记(五):生命周期 - **生命周期管理**:每个容器都有自己的生命周期,从创建到销毁的过程需要进行适当的初始化和清理工作。 - **事件监听器**:Tomcat支持通过事件监听器来...
8. **《How Tomcat Works》读书笔记** 这一系列笔记详细介绍了Tomcat的工作机制,涵盖Connector的工作原理、容器结构,以及默认Connector的配置和行为,对深入理解Tomcat的运行过程非常有帮助。 通过以上内容的...
8. **《How Tomcat Works》读书笔记** 这一系列笔记详细介绍了Tomcat的工作原理,包括Connector如何处理网络连接,Container如何管理Servlet,以及默认的Connector和容器配置。通过阅读这些笔记,可以深入理解...
《How Tomcat Works》这本书是理解Tomcat工作原理的重要参考资料。书中详细介绍了Tomcat如何处理HTTP请求,如何加载和执行Servlet,以及它是如何管理线程和内存的。通过阅读这本书,你可以深入理解Tomcat的内部架构...