spring mvc xml 注解(springmvc菜鳥教程)
夕逆IT
- 前端設(shè)計(jì)
- 2023-08-13
- 318

大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于spring mvc xml 注解,springmvc菜鳥教程這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看吧!spring mv...
大家好,今天小編來(lái)為大家解答以下的問(wèn)題,關(guān)于spring mvc xml 注解,springmvc菜鳥教程這個(gè)很多人還不知道,現(xiàn)在讓我們一起來(lái)看看吧!
spring mvc request作用
1、@requestBody注解常用來(lái)處理content-type不是默認(rèn)的application/x-www-form-urlcoded編碼的內(nèi)容,比如說(shuō):application/json或者是application/xml等。一般情況下來(lái)說(shuō)常用其來(lái)處理application/json類型。
2、通過(guò)@requestBody可以將請(qǐng)求體中的JSON字符串綁定到相應(yīng)的bean上,當(dāng)然也可以將其分別綁定到對(duì)應(yīng)的字符串上。
例如說(shuō)以下情況:
$.ajax({
url:"/login",
type:"POST",
data:'{"userName":"admin","pwd","admin123"}',
content-type:"application/jsoncharset=utf-8",
success:function(data)
{
alert("requestsuccess!");
}
});
@requestMapping("/login")
publicvoidlogin(@requestBodyStringuserName,@requestBodyStringpwd){
System.out.println(userName+":"+pwd);
}
這種情況是將JSON字符串中的兩個(gè)變量的值分別賦予了兩個(gè)字符串,但是呢假如我有一個(gè)User類,擁有如下字段:StringuserName;Stringpwd;那么上述參數(shù)可以改為以下形式:@requestBodyUseruser這種形式會(huì)將JSON字符串中的值賦予user中對(duì)應(yīng)的屬性上需要注意的是,JSON字符串中的key必須對(duì)應(yīng)user中的屬性名,否則是請(qǐng)求不過(guò)去的。
3、在一些特殊情況@requestBody也可以用來(lái)處理content-type類型為application/x-www-form-urlcoded的內(nèi)容,只不過(guò)這種方式不是很常用,在處理這類請(qǐng)求的時(shí)候,@requestBody會(huì)將處理結(jié)果放到一個(gè)MultiValueMap<String,String>中,這種情況一般在特殊情況下才會(huì)使用,例如jQueryeasyUI的datagrid請(qǐng)求數(shù)據(jù)的時(shí)候需要使用到這種方式、小型項(xiàng)目只創(chuàng)建一個(gè)POJO類的話也可以使用這種接受方式。
作用:
i)該注解用于讀取Request請(qǐng)求的body部分?jǐn)?shù)據(jù),使用系統(tǒng)默認(rèn)配置的HttpMessageConverter進(jìn)行解析,然后把相應(yīng)的數(shù)據(jù)綁定到要返回的對(duì)象上;
ii)再把HttpMessageConverter返回的對(duì)象數(shù)據(jù)綁定到controller中方法的參數(shù)上。
cs架構(gòu)與springboot框架的區(qū)別
區(qū)別是概念不同,結(jié)構(gòu)模式不同
SpringBoot框架:是一個(gè)快速開發(fā)框架,通過(guò)用MAVEN依賴的繼承方式,幫助我們快速整合第三方常用框架,完全采用注解化(使用注解方式啟動(dòng)SpringMVC),簡(jiǎn)化XML配置,內(nèi)置HTTP服務(wù)器(Tomcat,Jetty),最終以Java應(yīng)用程序進(jìn)行執(zhí)行。
cs架構(gòu),是一種分布式計(jì)算模型,其中客戶端和服務(wù)器之間通過(guò)網(wǎng)絡(luò)進(jìn)行通信。在這種架構(gòu)中,客戶端負(fù)責(zé)向服務(wù)器發(fā)送請(qǐng)求,并接收服務(wù)器返回的響應(yīng)。服務(wù)器則負(fù)責(zé)處理客戶端的請(qǐng)求,并返回相應(yīng)的結(jié)果。CS架構(gòu)通常用于構(gòu)建大型的網(wǎng)絡(luò)應(yīng)用程序,如Web應(yīng)用程序、電子郵件系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)等。
Spring MVC過(guò)時(shí)了嗎
SpringMVC當(dāng)然沒(méi)有過(guò)時(shí),目前很多企業(yè)的項(xiàng)目還都是基于SpringMVC構(gòu)建的。
題主可能并沒(méi)有真正理解SpringMVC的精髓。最早的時(shí)候,我們使用SpringMVC的時(shí)候可能是前后端耦合在一起的。通過(guò)Controller的ModelAndView返回一個(gè)jsp的頁(yè)面。但是現(xiàn)在這種方式基本已經(jīng)被淘汰。現(xiàn)在的SpringMVC框架都是以Rest風(fēng)格編寫Controller層,也就是我們Controller層不再是返回Jsp的頁(yè)面,而是返回Json格式的數(shù)據(jù)。而前端可以選擇任何目前市面上流行的框架,例如:React、vue、小程序、H5等。所以,SpringMVC跟前后端分離沒(méi)有關(guān)系。如果說(shuō)你還按照早期的ModeAndView開發(fā),那你真的落伍了。
但是,隨著微服務(wù)框架SpringBoot的出現(xiàn)以及大規(guī)模流行,SpringMVC的使用程度在降低,這主要是SpringMVC的配置太復(fù)雜。SpringMVC中有大量的xml文件需要編寫,而且編寫起來(lái)很復(fù)雜。當(dāng)然這些xml文件編寫是基本一次性的,只要第一次編寫完成,后續(xù)的業(yè)務(wù)開發(fā)基本不用再改變。而SpringBoot基本完全拋棄了xml文件的配置,所有的配置都是框架本身集成好的,只需要按照特定的約定去做就好。當(dāng)然在集成有些中間件的時(shí)候,我們只需要編寫相應(yīng)的Java代碼即可,所以,SpringBoot的使用越來(lái)越廣泛,企業(yè)的很多新項(xiàng)目都是基于SpringBoot去開發(fā)。
不管是SpringMVC還是SpringBoot,只要精通一種框架,剩下的框架自然而然的就懂了??蚣鼙旧砭褪菫榱藴p少程序員的工作而設(shè)計(jì)的,無(wú)需過(guò)多的糾結(jié)過(guò)不過(guò)時(shí)的問(wèn)題,拿來(lái)即用是我們最終的目標(biāo)。請(qǐng)教,如何springboot里動(dòng)態(tài)讀取配置文件
這個(gè)跟springmvc一樣的啊,首先你看你的spring-mvc.xml有沒(méi)有配置defaultViewResolver,
然后你在action的方法中如果1.標(biāo)注了@ResponseBody,返回字符串的話是通過(guò)write輸出到頁(yè)面。2.沒(méi)有標(biāo)注這個(gè),springmvc會(huì)到配置的目錄下找相應(yīng)的jsp。比如返回"hello",它就在webpage/目錄下找hello.jsp。返回"user/login",它就會(huì)找webpage/user/login.jsp
springmvc的工作流程是什么
spring工作的流程
流程如下:
1、用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet),該控制器會(huì)過(guò)濾出哪些請(qǐng)求可以訪問(wèn)Servlet、哪些不能訪問(wèn)。就是url-pattern的作用,并且會(huì)加載springmvc.xml配置文件。
2、前端控制器會(huì)找到處理器映射器(HandlerMapping),通過(guò)HandlerMapping完成url到controller映射的組件,簡(jiǎn)單來(lái)說(shuō),就是將在springmvc.xml中配置的或者注解的url與對(duì)應(yīng)的處理類找到并進(jìn)行存儲(chǔ),用map<url,handler>這樣的方式來(lái)存儲(chǔ)。
3、HandlerMapping有了映射關(guān)系,并且找到url對(duì)應(yīng)的處理器,HandlerMapping就會(huì)將其處理器(Handler)返回,在返回前,會(huì)加上很多攔截器。
4、DispatcherServlet拿到Handler后,找到HandlerAdapter(處理器適配器),通過(guò)它來(lái)訪問(wèn)處理器,并執(zhí)行處理器。
5、執(zhí)行處理器
6、處理器會(huì)返回一個(gè)ModelAndView對(duì)象給HandlerAdapter
7、通過(guò)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域中,用來(lái)讓頁(yè)面加載數(shù)據(jù)的。
11、通過(guò)第8步,通過(guò)名稱找到了對(duì)應(yīng)的頁(yè)面,通過(guò)第10步,request域中有了所需要的數(shù)據(jù),那么就能夠進(jìn)行視圖渲染了。最后將其返回即可。
applicationContext.xml和SpringMVC的區(qū)別
applicationContext.xml是文件,是Spring的配置文件SpringMVC是web架構(gòu)方式,包含了Spring
文章到此結(jié)束,如果本次分享的spring mvc xml 注解和springmvc菜鳥教程的問(wèn)題解決了您的問(wèn)題,那么我們由衷的感到高興!
本文鏈接:http://xinin56.com/qianduan/540.html