7.4.1 Pipeline-Value 处理模式
Pipeline-Value 是责任链模式,但是Pipeline-Value 的管道模型和普通的责任链有所不同:
- 每个 Pipeline 都有特定的 Value(BaseValue),BaseValue 会在最后执行。
- 上层容器的BaseValue 会调用下层容器的管道,FilterChain 其实就是这种模式,FilterChain 相当于 Pipeline,每个 Filter 相当于一个 Value 而BaseValue则是BaseValue。
7.4.2 Pipeline-Value 的实现方法
Pipeline 管道分为生命周期管理和请求处理两个部分。
Pipeline 管道生命周期的实现方法
Container 中的 Pipeline 在ContainerBase 中定义,并且ContainerBase会在其生命周期方法 startInternal、stopInternal 和 destroyInternal 中调用管道对应的方法,注意管道不需要初始化。
StandardPipeline 的 Value 是链式结构,通过遍历进行 Value 的执行。
Pipeline 管道处理请求的实现方法
Pipeline 管道处理请求是通过逐层调用下一级的 Pipeline 来进行的。Connector 接受到请求后会调用最顶层容器的 Pipeline 来处理,顶层容器的 Pipeline 会在BaseValue里调用下一层的Pipeline 进行处理,直到最后调用了 Wrapper 的 Pipeline 所包含的 BaseValue——StandardWrapperValue。
s
s
s
s
s
s
s
s
s
s