SpringMVC源碼分析系列[轉]

說到Java的mvc框架,struts2和springmvc想必你們都知道,struts2的設計基本上徹底脫離了Servlet容器,而springmvc是依託着Servlet容器元素來設計的,同時springmvc基於spring框架,Spring框架想必搞java的同窗都很熟悉。html

一進Spring的官網就發現了這樣一排醒目的文字, spring可讓咱們構造簡單的、便攜的、又快又易於擴展的基於jvm的系統和應用程序。java

沒錯,基於Spring的MVC框架SpringMVC一樣也能夠構造具備這些特性的系統。git

 

 

樓主從5.1開始寫的第一篇《SpringMVC入門》開始,到如今差很少將近2個月的時間,以後陸陸續續寫了幾篇關於SpringMVC的源碼分析文章。github

有同窗想研究SpringMVC源碼或想深刻學習一下SpringMVC的話,能夠參考本系列文章。spring

 

廢話很少說,本系列的文章都是基於Spring4.0.2版本的,樓主寫的時候出到了4.0.2,也是最新的,如今的最新版本是4.0.5。json

 

文章閱讀順序:mvc

  1. SpringMVC入門app

    SpringMVC的入門文章, 對於某些沒接觸過SpringMVC的同窗來講,能夠閱讀如下,瞭解這個框架的結構以及使用,以入門的同窗能夠選擇不看~框架

  2. SpringMVC核心分發器DispatcherServlet分析jvm

    SpringMVC入口Servlet -> DispatcherServlet的分析,解釋了DispatcherServlet的父類FrameworkServlet以及FrameworkServlet的父類HttpServletBean的做用

  3. 詳解SpringMVC請求的時候是如何找到正確的Controller

    想知道http請求是如何找到對應Controller中的方法的嗎,這個過程中到底發生了什麼,你知道嗎? 本篇將爲你一一解答。

  4. 詳解SpringMVC中Controller的方法中參數的工做原理

    同窗們有想過http請求找到對應Controller中的方法以後,方法中的參數是如何被注入進來的嗎?好比:

public String method(HttpServletRequest request, String name) {
         ...
        }

    這裏的HttpServletRequest類型的request參數以及String類型的name參數是如何自動被注入到method方法中的?  主要是兩個重要的接口的做用:HandlerMethodArgumentResolver(請求參數處理)和HandlerMethodReturnValueHandler(返回值處理)。文中還寫了一個自定義的HandlerMethodArgumentResolver接口實現類FormObjArgumentResolver,該類處理Controller方法中多個自定義類參數的處理(建議看完類型轉換文章後再看這個類的具體實現代碼)。

  5. SpringMVC關於json、xml自動轉換的原理研究

    經過json、xml的自動轉換鞏固第四篇文章的知識,自動轉換由RequestResponseBodyMethodProcessor處理,該類實現了HandlerMethodArgumentResolver和HandlerMethodReturnValueHandler接口。

    6. SpringMVC類型轉換、數據綁定詳解

    介紹了屬性編輯器的概念以及Spring對屬性編輯器的支持,本文知識消化以後能夠回過頭看第4篇中FormObjArgumentResolver的實現。

  7. SpringMVC攔截器詳解

    解釋了SpringMVC攔截器的設計原理。

  8. SpringMVC視圖機制詳解

    分析了SpringMVC的視圖機制,主要也就是講解View和ViewResolver這兩個接口的做用。寫完以後還寫了篇關於重定向視圖RedirectView的小吐槽:SpringMVC重定向視圖RedirectView小分析

  9. SpringMVC異常處理機制詳解

    解釋了SpringMVC異常機制的設計原理。

 

額外知識:

  Spring中Ordered接口簡介

 

有同窗想了解本系列沒講到的知識的話,若是以爲合適,樓主會繼續寫關於這些內容的博客的。

 

目前這些博客已經放到了github上: https://github.com/fangjian0423/springmvc-source-minibook

 

也能夠在線閱讀,或者下載pdf,moni,epub:https://www.gitbook.com/book/fangjian0423/springmvc-source-minibook/details

 

最後附上Spring4.0.2官方文檔:http://docs.spring.io/spring/docs/4.0.2.RELEASE/spring-framework-reference/htmlsingle/

相關文章
相關標籤/搜索