spring MVC工作原理解析(學框架的一眼就懂)

在這之前,我讀過spring MVC的源碼以及看過別人寫的博客,但是介紹都比較官方,不容易理解 ,在這裏,我整理總結了一下spring MVC的工作原理,描述純白話,容易理解。

spring MVC工作原理:(五步戰略)

  1. 項目啓動時會從配置文件裏面去掃描配置的路徑,通過路徑去掃描對應包下所有的文件,挑出後綴是class的文件,會把這些文件的名字提取出來,再把文件的名字與配置文件中的路徑加起來,成爲了一個完整的類的路徑。
  2. 有了完整的類路徑,通過反射,根據類的完整路徑拿到類信息(通過Class.forName方法),拿到在類信息裏面包含着的註解信息,把帶有controller註解的挑出來,再遍歷controller裏面的方法,把方法的註解也拿出來(把其中帶有RequesMapping註解的方法挑出來),拿到其中的路徑信息(最終路徑信息就是兩者相加得到)
  3. 把路徑信息作爲key值,將方法實例化(單例模式,節省內存),方法對象作爲value值,把他們存到HashMap當中
  4. 當前端有請求出現的時候,由Tomcat接收這個請求,tomcat會把傳來的http請求封裝成HttpRequest請求,然後tomcat會把HttpRequest請求交給DispatcherServlet(DispatcherServlet: 前置處理器,tomcat只能識別servlet,沒辦法與controller交互),由DispatcherServlet去調用controller
  5. DispatcherServlet 和普通的servlet一樣,把url( url 組成:包含ip或域名 + 端口號 + 項目文件夾路徑 + 方法路徑 )提取出來,接着把url中的方法路徑部分提取出來,也會把方法的入參提取出來,根據url去HashMap裏面去匹配,把對應的方法實例取出來,把提取出來的參數放進去,然後執行調用(通過java代理執行的調用,invoke方法(invoke的入參就是實例對象和方法入參)),拿到返回入參之後,通過servlet返回給tomcat,再由tomcat返回給前端

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章