SpringMVC源碼分析系列

說到java的mvc框架,struts2和springmvc想必大家都知道,struts2的設計基本上完全脫離了Servlet容器,而springmvc是依託着Servlet容器元素來設計的,同時springmvc基於Spring框架,Spring框架想必搞java的同學都很熟悉。

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

沒錯,基於Spring的MVC框架SpringMVC同樣也可以構造具有這些特性的系統。

 

 

樓主從5.1開始寫的第一篇《SpringMVC入門》開始,到現在差不多將近2個月的時間,之後陸陸續續寫了幾篇關於SpringMVC的源碼分析文章。

有同學想研究SpringMVC源碼或想深入學習一下SpringMVC的話,可以參考本系列文章。

 

廢話不多說,本系列的文章都是基於Spring4.0.2版本的,樓主寫的時候出到了4.0.2,也是最新的,現在的最新版本是4.0.5。

 

文章閱讀順序:

  1. SpringMVC入門

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

  2. SpringMVC核心分發器DispatcherServlet分析

    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/


轉載自:http://blog.csdn.net/z69183787/article/details/53641984

發佈了3 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章