SpringMVC 中的常用注解和用法詳解
1、@Controller
類注解
將一個 Java 類標記為 Spring MVC 的 Controller,標識一個類為 Spring MVC 控制器。
該類中的方法可以使用 @RequestMapping、@GetMapping、@PostMapping 等注解來映射 HTTP 請求。
2、@RestContoller
類注解
= @Controller + @ResponseBody(類級別)
@Controller 和 @ResponseBody 的組合,專為返回 數(shù)據(jù)(如 JSON、XML、純文本等) 而非視圖頁面而設(shè)計。
3、@ResponseBody
既是類注解又是方法注解
用于將控制器方法的返回值直接寫入 HTTP 響應(yīng)體(Response Body),而不是被解析為視圖名稱(如 Thymeleaf 模板名)。
/**
* 返回視圖
* @return
*/
@RequestMapping("/re1")
public String re1() {
return "/test.html";
}
/**
* 返回數(shù)據(jù)
* @return
*/
@ResponseBody
@RequestMapping("/re2")
public String re2() {
return "/test.html";
}4、@RequestMapping
既是類注解也是方法注解
Spring MVC 中最核心的請求映射注解,用于將 HTTP 請求(URL + 方法 + 參數(shù)等) 綁定到具體的控制器方法上。
@ResponseBody
@RequestMapping(value = "/re7", produces = "application/json")
public String re7() {
return "{\"OK\": 1}";
}5、@GetMapping
方法注解
是 Spring Framework 提供的一個組合注解(Composed Annotation),它是 @RequestMapping(method = RequestMethod.GET) 的快捷方式,專門用于映射 HTTP GET 請求。
6、@RequestParam
用于參數(shù)綁定/參數(shù)重命名,@RequestParam 用于將 HTTP 請求中的參數(shù)(如 URL 查詢參數(shù) ?name=Alice 或表單數(shù)據(jù))綁定到控制器方法的某個參數(shù)上。
| 屬性 | 說明 | 默認值 |
|---|---|---|
value / name | 指定請求中的參數(shù)名 | - |
required | 是否必須傳該參數(shù) | true |
defaultValue | 參數(shù)未提供時的默認值 | - |
@RequestMapping("/r6")
public String r6(@RequestParam(value = "wd", required = false, defaultValue = "000000") String keyword) {
return "接收到參數(shù), keyword:" + keyword;
}默認情況下,請求中參數(shù)名相同的多個值,是封裝到數(shù)組。如果要封裝到集合,要使用 @RequestParam 綁定參數(shù)關(guān)系
@RequestMapping("/r8")
public String r8(@RequestParam(required = false) List<String> list) {
return list.toString();
}7、@RequestBody
方法注解
請求正文,意思是這個注解作用在請求正文的數(shù)據(jù)綁定,請求參數(shù)必須寫在請求正
接收 JSON 對象,需要使用 @RequestBody 注解
/**
* 接收一個json字符串, 并把json字符串轉(zhuǎn)為Person對象
* @param person
* @return
*/
@RequestMapping("/r9")
public String r9(@RequestBody Person person) {
return person.toString();
}
8、@PathVariable
路徑變量
作用在請求 URL 路徑上的數(shù)據(jù)綁定,默認傳遞參數(shù)寫在 URL 上,SpringMVC 就可以獲取到
/**
* 獲取 URL 中的參數(shù)
*/
@RequestMapping("/r10/{id}")
public String r10(@PathVariable Integer id) {
return "從 url 中獲取 id:"+id;
}@RequestMapping("r11/{id}/{name}")
public String r11(@PathVariable Integer id, @PathVariable("name") String userName) {
return "解析參數(shù) id:" + id + ",name:" + userName;
}9、@RequestPart
用于上傳文件
@RequestMapping("/r12")
public String getfile(@RequestPart("file") MultipartFile file) throws IOException {
// 獲取文件名稱
String fileName = file.getOriginalFilename();
System.out.println(fileName);
//文件上傳
file.transferTo(new File("D:\\AAA Java/" + file.getOriginalFilename()));
return "接收到文件名為:" + fileName;
}
10、@CookieValue
用于獲取 Cookie 信息
@RequestMapping("/getCookie2")
public String getCookie2(@CookieValue("name") String name) {
return "獲取 Cookie 成功, name:" + name;
}11、@SessionAttribute
用于獲取 Session 信息
@RequestMapping("/getSession3")
public String getSession3(@SessionAttribute("address") String address) {
return "獲取 Session 成功, address:" + address;
}12、@RequestHeader
用于獲取頭部信息
@RequestMapping("/getHeader2")
public String getHeader2(@RequestHeader("User-Agent") String userAgent) {
return "獲取header成功. userAgent:"+ userAgent;
}到此這篇關(guān)于SpringMVC 中的常用注解和用法詳解的文章就介紹到這了,更多相關(guān)SpringMVC注解和用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Java實現(xiàn)MapReduce詞頻統(tǒng)計示例代碼
這篇文章主要介紹了使用Java實現(xiàn)MapReduce詞頻統(tǒng)計的相關(guān)資料,通過詞頻統(tǒng)計示例來展示MapReduce的運行機制,涵蓋了Mapper和Reducer的實現(xiàn),并說明了如何配置和執(zhí)行MapReduce作業(yè),需要的朋友可以參考下2024-11-11
關(guān)于@ComponentScan注解的用法及作用說明
這篇文章主要介紹了關(guān)于@ComponentScan注解的用法及作用說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
java中BCryptPasswordEncoder密碼的加密與驗證方式
這篇文章主要介紹了java中BCryptPasswordEncoder密碼的加密與驗證方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08

