SpringBoot Controller中的常用注解
概述
Controller是Spring接受并處理網(wǎng)頁(yè)請(qǐng)求的組件,是整個(gè)應(yīng)用的入口,因此學(xué)會(huì)Controller的常用注解對(duì)理解一個(gè)應(yīng)用是重中之重。SpringBoot的Controller中經(jīng)常會(huì)用到注解@Controller、@RestController、@RequestMapping、@RequestBody等,本短文主要對(duì)這些常用的Controller注解進(jìn)行簡(jiǎn)單介紹。
常用注解簡(jiǎn)介
1.@Controller
@Controller是最基本的控制層注解,繼承了Spring的@Component注解,會(huì)把對(duì)應(yīng)的類聲明為Spring對(duì)應(yīng)的Bean,并且可以被Web組件管理。使用@Controller注解返回的是view,而不是Json數(shù)據(jù),例:
@Controller
@RequestMapping("/test")
public class HelloController {
@RequestMapping("/hello")
public String hello(Model model) {
model.addAttribute("message", "Hello World!");
return "index";
}
}在該段代碼中,用戶若訪問(wèn)/test/hello,則會(huì)返回index頁(yè)面。
2.@RestController
和@Controller一樣,@RestController也是用于一個(gè)類的標(biāo)注,不同的是@RestController標(biāo)注的類的方法返回json。
例如:
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/index")
public String testMethod(Model model) {
return "index/index";
}
}訪問(wèn)的返回結(jié)果如圖所示 :

3.@RequestMapping
@RequestMapping是用于標(biāo)識(shí)類或者方法的訪問(wèn)地址的,提供路由信息,完成從url到controller的映射。例如上面代碼塊中的類上的@RequestMapping("/test")表示訪問(wèn)端口的/test就能訪問(wèn)到改控制器,而訪問(wèn)/test/index則能訪問(wèn)到該類的相應(yīng)方法。@GetMapping/@PostMapping其實(shí)就是@RequestMapping和Get/Post的集合。@GetMapping(value = “hello”) 等價(jià)于@RequestMapping(value = “hello”, method = RequestMethod.GET)
4.@RequestBody
該注解的作用是將方法的返回值,以特定的格式寫(xiě)入到response的body區(qū)域,進(jìn)而將數(shù)據(jù)返回給客戶端。當(dāng)方法上面沒(méi)有寫(xiě)ResponseBody,底層會(huì)將方法的返回值封裝為ModelAndView對(duì)象。如果返回值是字符串,那么直接將字符串寫(xiě)到客戶端;如果是一個(gè)對(duì)象,會(huì)將對(duì)象轉(zhuǎn)化為json串,然后寫(xiě)到客戶端。@Controller+@ResponseBody等于@RestController。
5.@RequestParam
@RequestParam用于獲取請(qǐng)求參數(shù),從而使用請(qǐng)求所帶的參數(shù),
例如:
@RequestMapping("/user")
public String testRequestParam(@RequestParam("name") String name){
System.out.println("請(qǐng)求姓名參數(shù)="+name);
return "success";
}該段代碼會(huì)解析請(qǐng)求參數(shù)name,用于方法中的使用。
6.@PathVariable
@PathVariable與@RequestMapping配合使用,通過(guò)解析url中的占位符進(jìn)行參數(shù)獲取。
例如:
@RequestMapping("/user/{id}")
public String testPathVariable(@PathVariable("id") String id){
System.out.println("路徑上的占位符的值="+id);
return "success";
}上面的代碼塊就能從url中解析出id字段,用于方法中的使用。
總結(jié)
本文只是對(duì)常用的一些@Controller層的注解進(jìn)行簡(jiǎn)介,對(duì)這些注解組合使用,才能夠達(dá)到想要完成的目的任務(wù)。
到此這篇關(guān)于SpringBoot Controller中的常用注解的文章就介紹到這了,更多相關(guān)SpringBoot Controller 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot如何為web層添加統(tǒng)一請(qǐng)求前綴
這篇文章主要介紹了springboot如何為web層添加統(tǒng)一請(qǐng)求前綴,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Java?基于Hutool實(shí)現(xiàn)DES加解密示例詳解
這篇文章主要介紹了Java基于Hutool實(shí)現(xiàn)DES加解密,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
java發(fā)送email一般步驟(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇java發(fā)送email一般步驟(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09
Java 中橋接模式——對(duì)象結(jié)構(gòu)型模式的實(shí)例詳解
這篇文章主要介紹了Java 中橋接模式——對(duì)象結(jié)構(gòu)型模式的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能掌握這部分知識(shí),需要的朋友可以參考下2017-09-09
如何基于sqlite實(shí)現(xiàn)kafka延時(shí)消息詳解
這篇文章主要給大家介紹了關(guān)于如何基于sqlite實(shí)現(xiàn)kafka延時(shí)消息的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01
Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文)
這篇文章主要介紹了Intellij IDEA基于Springboot的遠(yuǎn)程調(diào)試(圖文),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10

