SpringMVC源码简单解析

2018-03-20  本文已影响14人  努力努力再努力_y

前言:源码解析步骤以下图执行顺序为基础

请求流程.jpg

查找源码对应路径

path doDispatch

一、HandlerMapping获取method映射器

getHandler HandlerExecutionChain
1、请求: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

六、视图处理

processDispatchResult

processDispatchResult中render方法


render triggerAfterCompletion
上一篇下一篇

猜你喜欢

热点阅读