Spring MVC的架構和運行流程淺析

Spring MVC的架構如下圖所示:
在這裏插入圖片描述
上圖展示了傳統的模型層被拆分爲業務層(Service)和數據訪問層(DAO,Data Access Object)。在Service下可以通過Spring的聲明式事務操作數據訪問層,而在業務層上允許我們訪問NoSQL,這樣就能夠滿足現今異軍崛起的NoSQL的使用,它的使用將大大提高互聯網系統的性能。
對於Spring MVC而言,其最大的特色就是結構鬆散,比如幾乎可以在Spring MVC中使用各類視圖,包括JSON、JSP、XML、PDF等,所以它能夠滿足手機端、頁面端和平板電腦端的各類需求,這就是現在它如此流行的原因。

接下來我們來談一談Spring MVC組件與流程。由於流程比較抽象,筆者將用一個實例來輔助講解,實例鏈接:第一個MVC入門實例
該實例的組件和運行流程如下圖所示:
在這裏插入圖片描述
上圖展示了實例的組件和流程,其中阿拉伯數字是其執行順序。當Spring MVC啓動的時候就會去解析MyController的註解,然後生成對應的URI和請求的映射順序,並註冊對應的方法。當請求來到的時候,首先根據URI找到對應的HandlerMapping,然後組織爲一個執行鏈,通過請求類型找到RequestMappingHandlerAdapter,它的實例是在DispatcherServlet初始化的時候進行創建的。然後通過它去執行HandlerExecutionChain的內容,最終在MyController的方法中將index視圖返回DispatcherServlet。由於配置的視圖解析器(InternalResourceViewResolver)前綴爲/WEB-INF/jsp/,後綴爲.jsp,視圖名爲index,所以最後它會找到/WEB-INF/jsp/index.jsp文件作爲視圖,響應最終的請求,這樣整個Spring MVC的流程就走通了。

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