Tomcat Lifecycle】的更多相关文章

org.apache.catalina.Lifecycle 接口统一管理生命周期,所有生命周期组件都要实现Lifecycle接口. 该接口定义了13个String类型的常量,用于LifecycleEvent时间的type属性,作用是区分组件发出的LifecycleEvent事件时的状态, 这种设计方式可以让多中状态都发送同一种类型的时间,然后用其中的一个属性来区分状态,而不用定义多种事件. public interface Lifecycle { public static final Stri…
一. 预备 如果你是Windows用户,使用Eclipse,并且想自行导入源码进行分析,你可能需要:Eclipse 导入 Tomcat 源码 如果你已遗忘 观察者模式,那么你可以通过该文章回顾:设计模式(五)观察者模式 如果你已遗忘 UML类图相关知识,那么你可以通过文章 (五分钟读懂UML类图 )快速回顾 二. 启程 1. Tomcat组件生命周期 Tomcat中包含多种组件,每个组件有各自的生命周期,而每个生命周期中又包含多种状态,这些状态会根据程序的运行而相互转换,在这个过程中,某些组件会…
关于tomcat和classloader的文章,网上多如牛毛,且互相转载,所以大多数搜到的基本上是讲到了tomcat中classloader的几个层次,对于初接触classloader,看了之后还是只知其然不知其所以然. 一直比较好奇,为什么tomcat需要实现自己的classloader,jvm提供的classloader有什么不符合需要? 事实上,tomcat之所以造了一堆自己的classloader,大致是出于下面三类目的: 对于各个webapp中的class和lib,需要相互隔离,不能出…
上一章 简单说明下Tomcat各个组件: Server:服务器,Tomcat服务器,一个Tomcat只有一个Server组件; Service:业务层,是Server下最大的子容器,一个Server可以包含多个Service组件: Connector:连接器,Service的子容器,一个Service可以有多个Connector连接器,作用体现在对外,接收客户端请求,HTTP.TCP等: Container:Service核心组件,通常有Engine.Host.Context.Wrapper,作…
之前写过一个Guide for Cloud Foundry New Teamer.不过似乎已经有些过时,那会实验室主要是针对的CF v1进行的研究,现在已经全面进入V2时代了.所以更新一下关于CloudFoundry运维的一些内容.如果有时间也可再回头看看V1的那个帖子,希望能有所帮助. 部署 关于部署,目前使用的工具一般有两种,BOSH和cf_nise_installer.BOSH适用于集群安装,cf_nise_installer适用于单节点安装.下面主要以cf_nise_installer的…
1.复习java的事件机制 java事件机制包括三个部分:事件.事件监听器.事件源. 事件:一般继承自java.util.EventObject类,封装了事件源对象及跟事件相关的信息. 事件监听器:实现java.util.EventListener接口,注册在事件源上,当事件源的属性或状态改变时,取得相应的监听器调用其内部的回调方法. 事件源:事件发生的地方,由于事件源的某项属性或状态发生了改变(比如BUTTON被单击.TEXTBOX的值发生改变等等)导致某项事件发生. 2. tomcat的li…
我们知道Tomcat的架构设计是清晰的.模块化的,其拥有很多组件,假如我们要启动Tomcat,可以一个一个启动组件,但这样启动有很多缺点,不仅麻烦,而且容易漏了组件启动,还会对后面动态组件扩展带来麻烦.难不成真要我们一个一个启动吗?其实未必,Tomcat的设计者提供了一个解决方案:用Lifecycle管理启动.停止.关闭. 从第一节的架构图可以看到各个核心组件有包含与被包含的关系,例如Server<-Service<-Container和Connector,最大的是Server,往下一层层包含…
前言 此篇随笔记录<How Tomcat works>中关于Lifecycle接口的相关总结 Lifecycle接口的主要目的 核心:统一. 已知Tomcat的卡特琳娜(Catalina)由许多组件构成.当Catalina启动的时候,这些组件也要跟着一起启动,并且当Catalina关闭的时候,这些组件也要同时关闭,并且要进行必要的清理操作,释放资源.例如,当容器关闭的时候,需要调用已加载的servlet对象的destroy方法,session对象也要持久化到secondary storage(…
Tomcat的组件都会实现一个Lifecycle接口,以方便组件的生命周期的统一管理 interface Lifecycle 组件生命周期中主要的几个方法 增加监听器,事件委托机制 public void addLifecycleListener(LifecycleListener listener); public void removeLifecycleListener(LifecycleListener listener); 组件初始化 public void init() throws…
Tomcat 8(七)解读Bootstrap介绍过.运行startup.bat.将引发Tomcat一连串组件的启动.事实上这一连串启动是通过组件的生命周期(Lifecycle)实现的 今天来看看Lifecycle设计.解读Lifecycle.涉及到例如以下几个类 Lifecycle.LifecycleState.LifecycleEvent.LifecycleListener(位于org.apache.catalina) LifecycleBase.LifecycleSupport.Lifecy…