springmvc流程類圖,簡(jiǎn)述springmvc工作原理
- 夕逆IT
- 數(shù)據(jù)庫(kù)
- 2023-08-13
- 245
各位老鐵們,大家好,今天由我來為大家分享springmvc流程類圖,以及簡(jiǎn)述springmvc工作原理的相關(guān)問題知識(shí),希望對(duì)大家有所幫助。如果可以幫助到大家,還望關(guān)注收...
各位老鐵們,大家好,今天由我來為大家分享springmvc流程類圖,以及簡(jiǎn)述springmvc工作原理的相關(guān)問題知識(shí),希望對(duì)大家有所幫助。如果可以幫助到大家,還望關(guān)注收藏下本站,您的支持是我們最大的動(dòng)力,謝謝大家了哈,下面我們開始吧!
springmvc的工作流程是什么
spring工作的流程
流程如下:
1、用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet),該控制器會(huì)過濾出哪些請(qǐng)求可以訪問Servlet、哪些不能訪問。就是url-pattern的作用,并且會(huì)加載springmvc.xml配置文件。
2、前端控制器會(huì)找到處理器映射器(HandlerMapping),通過HandlerMapping完成url到controller映射的組件,簡(jiǎn)單來說,就是將在springmvc.xml中配置的或者注解的url與對(duì)應(yīng)的處理類找到并進(jìn)行存儲(chǔ),用map<url,handler>這樣的方式來存儲(chǔ)。
3、HandlerMapping有了映射關(guān)系,并且找到url對(duì)應(yīng)的處理器,HandlerMapping就會(huì)將其處理器(Handler)返回,在返回前,會(huì)加上很多攔截器。
4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過它來訪問處理器,并執(zhí)行處理器。
5、執(zhí)行處理器
6、處理器會(huì)返回一個(gè)ModelAndView對(duì)象給HandlerAdapter
7、通過HandlerAdapter將ModelAndView對(duì)象返回給前端控制器(DispatcherServlet)
8、前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析,根據(jù)邏輯視圖名解析成真正的視圖(jsp),其實(shí)就是將ModelAndView對(duì)象中存放視圖的名稱進(jìn)行查找,找到對(duì)應(yīng)的頁(yè)面形成視圖對(duì)象
9、返回視圖對(duì)象到前端控制器。
10、視圖渲染,就是將ModelAndView對(duì)象中的數(shù)據(jù)放到request域中,用來讓頁(yè)面加載數(shù)據(jù)的。
11、通過第8步,通過名稱找到了對(duì)應(yīng)的頁(yè)面,通過第10步,request域中有了所需要的數(shù)據(jù),那么就能夠進(jìn)行視圖渲染了。最后將其返回即可。
springmvc和mybatis整合可不可以不需要spring
首先回答你的問題,肯定是不可以的。提這個(gè)問題可能是你對(duì)Spring和SpringMVC本身理解不夠。下面我簡(jiǎn)單介紹一下Spring。
Spring:我們一般單說Spring是指的SpringFrameworkzh.wikipedia.org
是一個(gè)開源的全棧的開發(fā)框架,Spring提供一個(gè)功能強(qiáng)大的Spring容器。核心是AOP和IOC。
SpringMVC要說SpringMVC前,先說一下什么是MVC。
MVC是一種使用MVC(ModelViewController模型-視圖-控制器)設(shè)計(jì)創(chuàng)建Web應(yīng)用程序的模式??梢钥吹街挥惺沁@樣三層結(jié)構(gòu)設(shè)計(jì)的都是MVC框架。較老的SSH中的Struts就是一個(gè)MVC框架。隨著Spring的發(fā)展,Spring本身也有了自己的MVC實(shí)現(xiàn),也就是SpringMVC。而且慢慢取代了Struts。
SpringBoot因?yàn)镾pring項(xiàng)目的配置復(fù)雜等問題,為了簡(jiǎn)化開發(fā)者的使用,從而創(chuàng)造性地推出了SpringBoot。約定優(yōu)于配置,簡(jiǎn)化了spring的配置流程。SpringBoot里面有大量的第三方啟動(dòng)包,可以快速搭建項(xiàng)目,可以簡(jiǎn)單理解是一個(gè)Spring項(xiàng)目的腳手架,懶人包。
SpringCloud有了SpringBoot已經(jīng)可以快速搭建一個(gè)服務(wù)。但是隨著微服務(wù)的興起,服務(wù)越來越多。服務(wù)的治理成了最主要的問題,SpringCloud就應(yīng)運(yùn)而生。
SpringCloud基于SpringBoot,為微服務(wù)體系開發(fā)中的架構(gòu)問題,提供了一整完套的解決方案,包括:服務(wù)注冊(cè)與發(fā)現(xiàn),服務(wù)消費(fèi),服務(wù)保護(hù)與熔斷,網(wǎng)關(guān),分布式調(diào)用追蹤,分布式配置管理等。
最后官網(wǎng)學(xué)習(xí)最靠譜,自己可以加深一下理解。
Spring和SpringMVC的區(qū)別是什么
Spring和SpringMVC是Java開發(fā)中兩個(gè)不同的框架,它們之間的區(qū)別如下:
1.定位不同:Spring是一個(gè)完整的應(yīng)用程序框架,用于開發(fā)企業(yè)級(jí)Java應(yīng)用程序。它提供了核心容器、AOP、事務(wù)管理等多種功能,可以幫助開發(fā)者快速構(gòu)建大規(guī)模、高效的Java應(yīng)用程序。而SpringMVC則是一種基于Spring框架的Web應(yīng)用程序開發(fā)框架,主要用于處理Web請(qǐng)求和響應(yīng)、實(shí)現(xiàn)頁(yè)面渲染、控制流程等。
2.功能不同:Spring提供了諸如依賴注入、面向切面編程(AOP)、Hibernate集成、JDBC訪問、消息隊(duì)列等眾多功能,可以幫助開發(fā)人員構(gòu)建更加豐富和復(fù)雜的Java應(yīng)用。而SpringMVC則針對(duì)Web應(yīng)用程序開發(fā),提供了一套完整的MVC(Model-View-Controller)架構(gòu)解決方案,用于實(shí)現(xiàn)Web請(qǐng)求和響應(yīng)、視圖渲染等功能。
3.使用方式不同:Spring通過XML或Java配置文件來定義Bean、AOP、事務(wù)等,使用起來比較靈活但也需要一定的學(xué)習(xí)成本;而SpringMVC則采用基于注解的方式,使得代碼量減少,開發(fā)效率更高。
spring mvc流程詳解
1、首先創(chuàng)建父容器(AnnotationConfigWebApplicationContext),通過自定義的getRootConfigClasses()拿到配置類,并注冊(cè)到父容器中。
2、通過父容器作為參數(shù)創(chuàng)建ContextLoaderListener監(jiān)聽器。并添加到servletContext(Tomcatservlet容器)。
3、通過自定的getServletConfigClasses()方法拿到MVC的配置類創(chuàng)建子容器,并把配置類注冊(cè)到子容器中。
4、創(chuàng)建DispatcherServlet,并將DispatcherServlet添加到servletContext的Servlet容器中去。
5、設(shè)置dispatcherServlet相關(guān)屬性(啟動(dòng)時(shí)加載,設(shè)置映射路徑)。
springmvc原理及流程
第一步:用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet)
第二步:前端控制器請(qǐng)求處理器映射器(HandlerMappering)去查找處理器(Handle):通過xml配置或者注解進(jìn)行查找
第三步:找到以后處理器映射器(HandlerMappering)像前端控制器返回執(zhí)行鏈(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)調(diào)用處理器適配器(HandlerAdapter)去執(zhí)行處理器(Handler)
第五步:處理器適配器去執(zhí)行Handler
第六步:Handler執(zhí)行完給處理器適配器返回ModelAndView
第七步:處理器適配器向前端控制器返回ModelAndView
第八步:前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析
第九步:視圖解析器像前端控制器返回View
第十步:前端控制器對(duì)視圖進(jìn)行渲染
第十一步:前端控制器向用戶響應(yīng)結(jié)果
springmvc流程類圖和簡(jiǎn)述springmvc工作原理的問題分享結(jié)束啦,以上的文章解決了您的問題嗎?歡迎您下次再來哦!
本文鏈接:http://xinin56.com/su/215.html