tomcat + spring mvc原理(二):tomcat容器初始化加载和启动


     tomcat + spring mvc 原理(一):tomcat原理综述比较详细的叙述了tomcat容器的静态结构和容器的配置,从tomcat动态运行来讲,我也在 原理(一)中简单论述了:

显然,这种运作模式要求:tomcat需要有监视指定目录,一旦有新的war包加入,就完成解包并动态加载编译后的class的能力;tomcat需要有网络端口开闭和监视的机制,维护线程池来处理随时可能到来的请求;tomcat还需要将到来的请求顺利地传递给spring mvc服务,然后再将服务返回的数据发送出去。

    其实,对tomcat的理解,不只是应该了解静态容器结构,对于动态运行方面,应该包括:    

  1. 容器的初始加载和启动
  2. war包动态监视和加载
  3. 网络请求的监控和处理

    这样基本就涵盖了tomcat所有的基本运作原理。本文主要涉及第一部分:容器的初始加载与启动。

容器通用生命周期标准

    tomcat的容器,包括Server、Service、Connector、Engine、Host、Context、Wrapper都继承自同一个管理生命周期的接口:Lifecycle。
    首先,这个接口类定义了这些容器的初始化、启动、停止和销毁的标准生命周期方法。

public interface Lifecycle {
    ......
    //容器初始化
    public void init() throws LifecycleException;

    //容器启动
    public void start() throws LifecycleException;

    //容器停止
    public void stop() throws LifecycleException;

    //容器销毁
    public void destroy() throws LifecycleException;

    ......
}

    其次,这个接口类定义了这些容器所处生命周期的状态事件名和状态事件监听器的管理。

public interface Lifecycle {
    ......
   /**
    *13种生命周期状态事件的名字。通过名字还是比较比较好理解的
    **/
    public static final String BEFORE_INIT_EVENT = "before_init";

    public static final String AFTER_INIT_EVENT = "after_init";

    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 AFTE
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值