第一次接触到“生命周期”这个词汇,是在软件工程的课程上,“软件的生命周期”,当时也是觉得有点玄,但还算可以理解:软件从需求分析到最后没人用,就像人的一生(人的“需求分析”是什么呢?这是个哲学问题...)
扯远了,回到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中文版
How Tomcat Works【英文PDF+中文HTML+源码】 How Tomcat Works 主要是讲解Tomcat如何运行的一些核心资料。
How Tomcat Works 中文版+例程源码; 源码在src目录下
NULL 博文链接:https://asialee.iteye.com/blog/521414
How Tomcat works(PDF),不可用于商业用途,如有版权问题,请联系删除!
tomcat的基本思想,学习完可以对理解spring的基本原理有大致了解,很值得学习
HowTomcatWorks 中文版+源码.rar HowTomcatWorks 中文版+源码.rar
How Tomcat Works》这本书的读书笔记,及主要内容感想。 作为一个世界范围广泛使用的强大框架,Tomcat必然有非常多的设计思想、设计模式,让我们学习。
how tomcat works中文版 + 英文版,深入解析了tomcat的实现机制
how tomcat works一书中的全部代码 java类
How Tomcat Works Tomcat原理的书
How Tomcat Works 全书共20章!
how tomcat works 高清版 学习tomcat必备书籍 how tomcat works
HowTomcatWorks(书和源码)
How Tomcat Works 深入剖析Tomcat (英文版)
HowTomcatWorks中文版HowTomcatWorks中文版 http://www.docin.com/p-58566711.html# suse安装oracle10 http://www.cnblogs.com/zhou__zhou/archive/2009/06/23/oracle_install.html
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
how tomcat works( 深入剖析tomcat) 的随书源码 之前找了很久,后来从官网下载下来的