SpringBoot Controller中的常用注解
概述
Controller是Spring接受并處理網(wǎng)頁請求的組件,是整個應(yīng)用的入口,因此學(xué)會Controller的常用注解對理解一個應(yīng)用是重中之重。SpringBoot的Controller中經(jīng)常會用到注解@Controller、@RestController、@RequestMapping、@RequestBody等,本短文主要對這些常用的Controller注解進行簡單介紹。
常用注解簡介
1.@Controller
@Controller是最基本的控制層注解,繼承了Spring的@Component注解,會把對應(yīng)的類聲明為Spring對應(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"; } }
在該段代碼中,用戶若訪問/test/hello,則會返回index頁面。
2.@RestController
和@Controller一樣,@RestController也是用于一個類的標注,不同的是@RestController標注的類的方法返回json。
例如:
@RestController @RequestMapping("/test") public class TestController { @GetMapping("/index") public String testMethod(Model model) { return "index/index"; } }
訪問的返回結(jié)果如圖所示 :
3.@RequestMapping
@RequestMapping是用于標識類或者方法的訪問地址的,提供路由信息,完成從url到controller的映射。例如上面代碼塊中的類上的@RequestMapping("/test")表示訪問端口的/test就能訪問到改控制器,而訪問/test/index則能訪問到該類的相應(yīng)方法。@GetMapping/@PostMapping其實就是@RequestMapping和Get/Post的集合。@GetMapping(value = “hello”) 等價于@RequestMapping(value = “hello”, method = RequestMethod.GET)
4.@RequestBody
該注解的作用是將方法的返回值,以特定的格式寫入到response的body區(qū)域,進而將數(shù)據(jù)返回給客戶端。當方法上面沒有寫ResponseBody,底層會將方法的返回值封裝為ModelAndView對象。如果返回值是字符串,那么直接將字符串寫到客戶端;如果是一個對象,會將對象轉(zhuǎn)化為json串,然后寫到客戶端。@Controller+@ResponseBody等于@RestController。
5.@RequestParam
@RequestParam用于獲取請求參數(shù),從而使用請求所帶的參數(shù),
例如:
@RequestMapping("/user") public String testRequestParam(@RequestParam("name") String name){ System.out.println("請求姓名參數(shù)="+name); return "success"; }
該段代碼會解析請求參數(shù)name,用于方法中的使用。
6.@PathVariable
@PathVariable與@RequestMapping配合使用,通過解析url中的占位符進行參數(shù)獲取。
例如:
@RequestMapping("/user/{id}") public String testPathVariable(@PathVariable("id") String id){ System.out.println("路徑上的占位符的值="+id); return "success"; }
上面的代碼塊就能從url中解析出id字段,用于方法中的使用。
總結(jié)
本文只是對常用的一些@Controller層的注解進行簡介,對這些注解組合使用,才能夠達到想要完成的目的任務(wù)。
到此這篇關(guān)于SpringBoot Controller中的常用注解的文章就介紹到這了,更多相關(guān)SpringBoot Controller 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot?快速實現(xiàn)分庫分表的2種方式
本文將為您介紹?ShardingSphere?的一些基礎(chǔ)特性和架構(gòu)組成,以及在?Springboot?環(huán)境下通過JAVA編碼和Yml配置兩種方式快速實現(xiàn)分庫分表功能,感興趣的朋友跟隨小編一起看看吧2023-06-06Java concurrency之公平鎖(二)_動力節(jié)點Java學(xué)院整理
這篇文章主要為大家詳細介紹了Java concurrency之公平鎖的第二篇內(nèi)容,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06JAVA使用hutool工具實現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū))
今天通過本文給大家分享JAVA使用hutool工具實現(xiàn)查詢樹結(jié)構(gòu)數(shù)據(jù)(省市區(qū)),代碼分為表結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu),代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2021-08-08詳解SpringBoot Mongo 自增長ID有序規(guī)則
本文主要介紹springboot基于mongodb有序id生成,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同
這篇文章主要介紹了深入學(xué)習(xí)java內(nèi)存化和函數(shù)式協(xié)同,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,,需要的朋友可以參考下2019-06-06