SpringMVC源碼簡單解析

前言:源碼解析步驟以下圖執(zhí)行順序?yàn)榛A(chǔ)

請求流程.jpg

查找源碼對應(yīng)路徑

path
doDispatch

一、HandlerMapping獲取method映射器

getHandler
HandlerExecutionChain
1、請求:mappedHandler = getHandler(processedRequest, false);
2、返回:HandlerExecutionChain mappedHandler = null;
3、HandlerExecutionChain中參數(shù):

    //HandlerMethod對象
    private final Object handler; 

    //攔截器鏈,Spring中的攔截器必須實(shí)現(xiàn)這個(gè)接口
    private HandlerInterceptor[] interceptors; 

    private List<HandlerInterceptor> interceptorList;

    // 前置攔截器存在多個(gè)對象,標(biāo)識當(dāng)前調(diào)到了哪一個(gè)前置攔截器
    private int interceptorIndex = -1;

二、Handler適配器控制器的獲取

getHandlerAdapter
getHandlerAdapter

三、前置攔截器

applyPreHandle
applyPostHandle

四、HandlerAdapter.handle

具體調(diào)用到控制器某一個(gè)方法,實(shí)現(xiàn)業(yè)務(wù)邏輯的處理

五、中置攔截器

applyPostHandle
applyPostHandle

六、視圖處理

processDispatchResult

processDispatchResult中render方法


render
triggerAfterCompletion
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,319評論 25 708
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,810評論 9 468
  • 如何才能跟你表明 你如晨起那道光照進(jìn)我的心房 你來之前 只住著一位安靜的少女 歲歲年年唱著歡快的歌 你怎能擅自闖入...
    沙漠之隝閱讀 181評論 0 1
  • 2016年11月25日 星期五 低技術(shù)崗位的危機(jī)時(shí)代,隨時(shí)被軟件互聯(lián)網(wǎng)趕回家。銀行裁員,機(jī)場裁員,這應(yīng)該是剛開始吧...
    zkishi閱讀 1,010評論 0 0

友情鏈接更多精彩內(nèi)容