前言:源码解析步骤以下图执行顺序为基础
请求流程.jpg查找源码对应路径
path doDispatch一、HandlerMapping获取method映射器
getHandler HandlerExecutionChain1、请求:mappedHandler = getHandler(processedRequest, false);
2、返回:HandlerExecutionChain mappedHandler = null;
3、HandlerExecutionChain中参数:
//HandlerMethod对象
private final Object handler;
//拦截器链,Spring中的拦截器必须实现这个接口
private HandlerInterceptor[] interceptors;
private List<HandlerInterceptor> interceptorList;
// 前置拦截器存在多个对象,标识当前调到了哪一个前置拦截器
private int interceptorIndex = -1;
二、Handler适配器控制器的获取
getHandlerAdapter getHandlerAdapter三、前置拦截器
applyPreHandle applyPostHandle四、HandlerAdapter.handle
具体调用到控制器某一个方法,实现业务逻辑的处理
五、中置拦截器
applyPostHandle applyPostHandle六、视图处理
processDispatchResultprocessDispatchResult中render方法
render triggerAfterCompletion
网友评论