SpringMVC的執(zhí)行流程及組件詳解
這篇文章主要介紹了SpringMVC的執(zhí)行流程及組件詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
一、核心模塊
數(shù)據(jù)庫訪問技術(shù)與集成:JDBC、XML等
Web與遠(yuǎn)程調(diào)用技術(shù):SpringMVC、WebServlet、WebSocket等
面向切面編程:AOP
基礎(chǔ)設(shè)施:Tomcat
Spring核心容器:Beans、Core、Context、Expression、ContestSupport
測(cè)試:Test
二、執(zhí)行流程
1.用戶通過頁面發(fā)送Ajax之類的請(qǐng)求,DispatcherServlet捕獲并解析用戶發(fā)來的請(qǐng)求URL,得到請(qǐng)求資源標(biāo)識(shí)符URI
2.DispatcherServlet根據(jù)URI調(diào)用HandlerMapping,HandlerMapping根據(jù)請(qǐng)求URL查找Handler,并將請(qǐng)求映射為HandlerExecutionChain處理器執(zhí)行鏈(包含處理器攔截器和處理器對(duì)象)
3.HandlerMapping返回HandlerExecutionChain給DispatcherServlet
4.DispatcherServlet根據(jù)獲得的Handler選擇HandlerAdapter,通過處理器適配器調(diào)用具體的處理器,HandlerAdapter把處理器包裝為適配器,并開始執(zhí)行攔截器的preHandler()方法,并根據(jù)適配器的結(jié)果調(diào)用真正的處理器的功能處理方法
5.調(diào)用具體的處理器Handler,在填充Handler的入?yún)⑦^程中spring將會(huì)進(jìn)行:執(zhí)行HttpMessageConveter、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)格式化、數(shù)據(jù)驗(yàn)證,調(diào)用具體的Controller完成處理功能,并返回一個(gè)ModelAndView對(duì)象
6.Controller返回ModelAndView對(duì)象到HandlerAdapter
7.HandlerAdapter再將ModelAndView對(duì)象的視圖邏輯名或模型返回給DispatcherServlet
8.DispatcherServlet調(diào)用視圖解析器ViewResolver來解析HandlerAdapter傳遞過來的邏輯視圖名
9.ViewResolver將解析的邏輯視圖名傳遞給DispatcherServlet
10.DispatcherServlet根據(jù)解析出的視圖結(jié)果,調(diào)用具體的視圖,根據(jù)傳來的Model模型數(shù)據(jù)進(jìn)行渲染
11.最后View返還控制權(quán)給DispatcherServlet,由DispatcherServlet返回最終視圖給用戶
三、核心組件
1.DispatcherServlet:前端控制器,控制中心
2.HandlerMapping:解析請(qǐng)求URL,解析出控制器,從而映射控制器,相關(guān)類有16個(gè)
3.HandlerAdapter:調(diào)度Controller來處理業(yè)務(wù)邏輯
4.ViewResolver:解析DispatcherServlet傳遞的邏輯視圖名,并將結(jié)果傳遞給DispatcherServlet
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出
Apache POI是一個(gè)流行的Java庫,用于處理Microsoft Office格式文件,包括Excel文件,本文主要介紹了SpringBoot集成Apache POI實(shí)現(xiàn)Excel的導(dǎo)入導(dǎo)出,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
基于springboot的flowable工作流實(shí)戰(zhàn)流程分析
這篇文章主要介紹了基于springboot的flowable工作流實(shí)戰(zhàn)流程分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
Mybatis-Plus多表關(guān)聯(lián)查詢的使用案例解析
這篇文章主要介紹了Mybatis-Plus多表關(guān)聯(lián)查詢的使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05
SpringMVC @ControllerAdvice使用場(chǎng)景
這篇文章主要介紹了SpringMVC @ControllerAdvice使用場(chǎng)景,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Spring之AOP兩種代理機(jī)制對(duì)比分析(JDK和CGLib動(dòng)態(tài)代理)
這篇文章主要介紹了Spring之AOP兩種代理機(jī)制對(duì)比分析(JDK和CGLib動(dòng)態(tài)代理),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
java二維數(shù)組指定不同長(zhǎng)度實(shí)例方法
在本篇內(nèi)容里小編給大家分享了一篇關(guān)于java二維數(shù)組指定不同長(zhǎng)度實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)下。2021-03-03
SpringBoot整合新版SpringSecurity完整過程
Spring Security是保障Spring應(yīng)用程序安全的強(qiáng)大框架,而新版的Spring Security引入了lambda表達(dá)式來配置,使得安全配置更加簡(jiǎn)潔、優(yōu)雅,本文將介紹如何在Spring Boot項(xiàng)目中整合新版Spring Security,需要的朋友可以參考下2024-02-02

