前言:源碼解析步驟以下圖執(zhí)行順序?yàn)榛A(chǔ)
查找源碼對(duì)應(yīng)路徑
一嫉晶、HandlerMapping獲取method映射器
1天吓、請(qǐng)求:mappedHandler = getHandler(processedRequest, false);
2蘸际、返回:HandlerExecutionChain mappedHandler = null;
3祭陷、HandlerExecutionChain中參數(shù):
//HandlerMethod對(duì)象
private final Object handler;
//攔截器鏈苍凛,Spring中的攔截器必須實(shí)現(xiàn)這個(gè)接口
private HandlerInterceptor[] interceptors;
private List<HandlerInterceptor> interceptorList;
// 前置攔截器存在多個(gè)對(duì)象,標(biāo)識(shí)當(dāng)前調(diào)到了哪一個(gè)前置攔截器
private int interceptorIndex = -1;
二兵志、Handler適配器控制器的獲取
三醇蝴、前置攔截器
四、HandlerAdapter.handle
具體調(diào)用到控制器某一個(gè)方法想罕,實(shí)現(xiàn)業(yè)務(wù)邏輯的處理
五悠栓、中置攔截器
六、視圖處理
processDispatchResult中render方法