springMVC原始碼分析--SimpleControllerHandlerAdapter(三)
上一篇部落格springMVC原始碼分析--HandlerAdapter(一)中我們主要介紹了一下HandlerAdapter介面相關的內容,實現類及其在DispatcherServlet中執行的順序,接下來我們詳細介紹一下其實現類SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter是Controller實現類的介面卡類,其本質是執行Controller中的handleRequest方法。
supports方法就是判斷handler是否是Servlet
getLastModified直接返回-1
handle方法本質是執行Controller.handleRequest方法。
public class SimpleControllerHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
//判斷是否是Controller類
return (handler instanceof Controller);
}
//執行Controller的handleRequest方法
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
//本質是執行Controller的handleRequest方法
return ((Controller) handler).handleRequest(request, response);
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
if (handler instanceof LastModified) {
return ((LastModified) handler).getLastModified(request);
}
return -1L;
}
}
其實Controller介面的定義也很簡單,僅僅定義了一個handleRequest方法
public interface Controller {
ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;
}
SimpleControllerHandlerAdapter的實現也是很簡單的,就是適配執行Controller的handleRequest方法。相關文章
- SpringMVC原始碼分析SpringMVC原始碼
- SpringMVC原始碼分析1:SpringMVC概述SpringMVC原始碼
- SpringMVC原始碼分析原理SpringMVC原始碼
- Retrofit原始碼分析三 原始碼分析原始碼
- springmvc工作原理及原始碼分析SpringMVC原始碼
- SpringMVC請求流程原始碼分析SpringMVC原始碼
- SpringMVC基礎原始碼分析(一)SpringMVC原始碼
- SpringMVC原始碼分析系列(精簡)SpringMVC原始碼
- springMvc Velocity tool 原始碼分析SpringMVC原始碼
- SpringMVC原始碼分析2:SpringMVC設計理念與DispatcherServletSpringMVC原始碼Servlet
- 從SpringMvc原始碼分析其工作原理SpringMVC原始碼
- SpringMVC執行流程及原始碼分析SpringMVC原始碼
- SpringMVC之原始碼分析--ViewResolver(五)SpringMVC原始碼View
- preact原始碼分析(三)React原始碼
- Backbone原始碼分析(三)原始碼
- YYCache 原始碼分析(三)原始碼
- Spring原始碼分析(四)SpringMVC初始化原始碼SpringMVC
- 面試官:你分析過SpringMVC的原始碼嗎?面試SpringMVC原始碼
- 原始碼分析三:OkHttp—CacheInterceptor原始碼HTTP
- 原始碼分析三:OkHttp—CallServerInterceptor原始碼HTTPServer
- 原始碼分析三:OkHttp—RetryAndFollowUpInterceptor原始碼HTTP
- SpringMVC原始碼解析SpringMVC原始碼
- SpringMVC原始碼剖析(三)- DispatcherServlet的初始化流SpringMVC原始碼Servlet
- SpringMVC原始碼剖析(三)- DispatcherServlet的初始化流程SpringMVC原始碼Servlet
- 5.2 spring5原始碼--spring AOP原始碼分析三---切面原始碼分析Spring原始碼
- Vue原始碼分析系列三:renderVue原始碼
- java集合原始碼分析(三):ArrayListJava原始碼
- 原始碼分析三:OkHttp—BridgeInterceptor原始碼HTTP
- 原始碼分析三:OkHttp—ConnectInterceptor原始碼HTTP
- Tinker接入及原始碼分析(三)原始碼
- SpringMVC DispatcherServlet原始碼解析SpringMVCServlet原始碼
- SpringMVC系列原始碼:DispatcherServletSpringMVC原始碼Servlet
- SpringMVC原始碼解析(上)SpringMVC原始碼
- SpringMVC原始碼解析(下)SpringMVC原始碼
- jQuery原始碼剖析(三) - Callbacks 原理分析jQuery原始碼
- Netty原始碼分析--建立Channel(三)Netty原始碼
- Flutter Dio原始碼分析(三)--深度剖析Flutter原始碼
- gson-plugin深入原始碼分析(三)Plugin原始碼