1、Spring 源码中用到的责任链
Pipeline 模式是责任链模式的一个变种,首先从责任链模式说起,看过Spring 源码的同学大概都看到过在核心Http 请求处理类DispatchServlet 中,在获取handler 的时候,具体获取到的起始是一个被包装过的HandlerExecutionChain
HandlerExecutionChain 中除了handler 以外,还包含一堆实现了HandlerInterceptor 接口的拦截器
里面有preHandlerI() 、postHandler() 、afterCompletion() 三个方法,实现这三个方法可以分别在调用 Controller 方法之前,调用 Controller 方法之后渲染ModeAndView 之前,以及渲染 ModelAndView 之后执行,每个方法都