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),因此,我们可以在任一层级的容器中进行拓展(如图示)。

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

发布了126 篇原创文章 · 获赞 15 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/Bof_jangle/article/details/104569465