tomcat源码分析三
????????????这里看下tomcat中责任链模式的使用。首先看下什么是责任链模式,责任链模式是抽象的处理者和具体的处理者组成。而具体处理者都拥有其下家的应用,从而形成处理链。直到有处理者处理,并且可以任意扩展链的长度。从简单点的开始,在阎宏《java与模式》一书中,有一个击鼓传花的例子。对责任链模式有很好的讲解,这里就不嗦了。通过书中例子,应该可以理解责任链的处理方式,这里主要看下tomcat中的使用。
??????? 首先我们来看下tomcat的配置文件,在conf/server.xml里面。
这个事原始配置文件:
按照需求更改后的<Engine></Engine>以内的配置文件,其他部分没有变动:
?
?tomcat对这部分的处理,就是采用责任链的模式。接下来看下实现责任链的类关系,如图:
那么从tomcat哪部分是配置文件呢?我们看下StandardService代码
//start中的部分代码// Notify our interested LifecycleListeners lifecycle.fireLifecycleEvent(BEFORE_START_EVENT, null); started = true; //省略部分代码 // Notify our interested LifecycleListeners lifecycle.fireLifecycleEvent(START_EVENT, null); // Start our thread threadStart(); // Notify our interested LifecycleListeners lifecycle.fireLifecycleEvent(AFTER_START_EVENT, null);?
