1 / 9
文档名称:

Tomcat源码分析(7)启动 关闭机制(生命周期).doc

格式:doc   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Tomcat源码分析(7)启动 关闭机制(生命周期).doc

上传人:xxj16588 2016/1/28 文件大小:0 KB

下载得到文件列表

Tomcat源码分析(7)启动 关闭机制(生命周期).doc

文档介绍

文档介绍:智慧人大有能力诚信?正直?创新有知识的人力上加力HansonTel:**********.Mail:******@Tomcat源码分析(七)--单一启动/关闭机制(生命周期)在前面的大部分文章都是讲连接器和容器的,以后的内容会偏向写一些Tomcat的其他组件以及一些细节的东西。Tomcat有很多组件,要一个一个启动组件难免有点麻烦。由于Tomcat的包含关系是Catalina->Server->Service->容器/连接器/日志器等,于是可通过父组件负责启动/关闭它的子组件,这样只要启动Catalina,其他的都自动启动了。这种单一启动和关闭的机制是通过实现Lifecycle接口来实现的。下面是Lifecycle接口的定义:[java]publicinterfaceLifecycle{publicstaticfinalStringSTART_EVENT="start";//生命周期的六个事件类型!publicstaticfinalStringBEFORE_START_EVENT="before_start";publicstaticfinalStringAFTER_START_EVENT="after_start";publicstaticfinalStringSTOP_EVENT="stop";publicstaticfinalStringBEFORE_STOP_EVENT="before_stop";publicstaticfinalStringAFTER_STOP_EVENT="after_stop";publicvoidaddLifecycleListener(LifecycleListenerlistener);//在此组件中添加一个***publicLifecycleListener[]findLifecycleListeners();publicvoidremoveLifecycleListener(LifecycleListenerlistener);publicvoidstart()throwsLifecycleException;//组件启动方法publicvoidstop()throwsLifecycleException;}当组件实现了Lifecycle接口,父组件启动的时候,即调用start方法时,只要在父组件的start方法中也调用子组件的start方法即可(只有实现统一的接口Lifecycle才能实现统一调用,如以下调用方式:(Lifecycle)()),智慧人大有能力诚信?正直?创新有知识的人力上加力HansonTel:**********.Mail:hansonjan@下面一步一步来看源代码,首先在Catalina启动start,部分代码如下:[java]//Startthenewserverif(serverinstanceofLifecycle){try{();((Lifecycle)server).start();//启动servertry{//().addShutdownHook(shutdownHook);}catch(Throwablet){//Thiswillfai