1. 程式人生 > >精盡Spring MVC原始碼分析 - HandlerMapping 元件(三)之 AbstractHandlerMethodMapping

精盡Spring MVC原始碼分析 - HandlerMapping 元件(三)之 AbstractHandlerMethodMapping

> 該系列文件是本人在學習 Spring MVC 的原始碼過程中總結下來的,可能對讀者不太友好,請結合我的原始碼註釋 [Spring MVC 原始碼分析 GitHub 地址](https://github.com/liu844869663/spring-framework) 進行閱讀 > > Spring 版本:5.2.4.RELEASE > > 該系列其他文件請檢視:[**《精盡 Spring MVC 原始碼分析 - 文章導讀》**](https://www.cnblogs.com/lifullmoon/p/14123963.html) ## HandlerMapping 元件 HandlerMapping 元件,請求的**處理器匹配器**,負責為請求找到合適的 `HandlerExecutionChain` 處理器執行鏈,包含處理器(`handler`)和攔截器們(`interceptors`) - `handler` 處理器是 Object 型別,可以將其理解成 HandlerMethod 物件(例如我們使用最多的 `@RequestMapping` 註解所標註的方法會解析成該物件),包含了方法的所有資訊,通過該物件能夠執行該方法 - `HandlerInterceptor` 攔截器對處理請求進行**增強處理**,可用於在執行方法前、成功執行方法後、處理完成後進行一些邏輯處理 由於 HandlerMapping 元件涉及到的內容比較多,考慮到內容的排版,所以將這部分內容拆分成了四個模組,依次進行分析: - [**《HandlerMapping 元件(一)之 AbstractHandlerMapping》**](https://www.cnblogs.com/lifullmoon/p/14137308.html) - [**《HandlerMapping 元件(二)之 HandlerInterceptor 攔截器》**](https://www.cnblogs.com/lifullmoon/p/14137358.html) - [**《HandlerMapping 元件(三)之 AbstractHandlerMethodMapping》**](https://www.cnblogs.com/lifullmoon/p/14137380.html) - **《HandlerMapping 元件(四)之 AbstractUrlHandlerMapping》** ## HandlerMapping 元件(三)之 AbstractHandlerMethodMapping 先來回顧一下HandlerMapping 介面體系的結構:
在[**《HandlerMapping 元件(一)之 AbstractHandlerMapping》**](https://www.cnblogs.com/lifullmoon/p/14137308.html)文件中已經分析了 HandlerMapping 元件的 **AbstractHandlerMapping** 抽象類基類 那麼本文就接著來分析圖中**紅色框**部分的 **AbstractHandlerMethodMapping** 系,該系是基於 Method 進行匹配。例如,我們所熟知的 `@RequestMapping` 等註解的方式。一共就三個類,不多