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
該注解的作用是將方法的返回值,以特定的格式寫入到response的body區(qū)域,進(jìn)而將數(shù)據(jù)返回給客戶端。當(dāng)方法上面沒(méi)有寫ResponseBody,底層會(huì)將方法的返回值封裝為ModelAndView對(duì)象。如果返回值是字符串,那么直接將字符串寫到客戶端;如果是一個(gè)對(duì)象,會(huì)將對(duì)象轉(zhuǎn)化為json串,然后寫到客戶端。@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?快速實(shí)現(xiàn)分庫(kù)分表的2種方式
本文將為您介紹?ShardingSphere?的一些基礎(chǔ)特性和架構(gòu)組成,以及在?Springboot?環(huán)境下通過(guò)JAVA編碼和Yml配置兩種方式快速實(shí)現(xiàn)分庫(kù)分表功能,感興趣的朋友跟隨小編一起看看吧2023-06-06Java concurrency之公平鎖(二)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了Java concurrency之公平鎖的第二篇內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06JAVA使用hutool工具實(shí)現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū))
今天通過(guò)本文給大家分享JAVA使用hutool工具實(shí)現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū)),代碼分為表結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-08-08詳解SpringBoot Mongo 自增長(zhǎng)ID有序規(guī)則
本文主要介紹springboot基于mongodb有序id生成,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同
這篇文章主要介紹了深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06