Tomcat保障灵活性和可拓展性的解决方案(Pipeline和Valve)

Tomcat使用职责链模式来实现和保障它的灵活性和可拓展性,它定义了Pipeline(管道)和valve(阀)两个接口。

  • Pipeline:用于构造职责链
  • Valve:代表职责链上的每个处理器

在Tomcat的设计中,Pipeline维护一个基础的Valve,它始终位于最末端,最后执行。可通过addValve()方法添加其他拓展Valve,这些添加的Valve按添加顺序执行,但都在Valve之前执行。

 

 

上文讲到,Tomcat有4个层级容器(Engine、Host、Context、Wrapper),他们都继承了Container()Container依赖Pipeline和Valve),因此,我们可以在任一层级的容器中进行拓展(如图示)。

Tomcat保障灵活性和可拓展性的解决方案(Pipeline和Valve)_第1张图片

 

这种扩展方式,我们也可以应用到我们平时的业务设计中。这是一个很好的参考方式和Demo。

你可能感兴趣的:(Java相关,#,Tomcat,java,tomcat)