Spring服務(wù)注解有哪些
@RequestMapping(value ="/xxx",method = RequestMethod.GET) @GetMapping,@PostMapping,@PutMapping,@DeleteMapping為@RequestMapping縮寫
1. @GetMapping
對(duì)應(yīng)注解
@RequestMapping(value = “/get/{id}”, method = RequestMethod.GET)作用:對(duì)應(yīng)查詢,獲得數(shù)據(jù),表明是一個(gè)查詢請(qǐng)求
2. @PostMapping
對(duì)應(yīng)注解
@RequestMapping(value = “/add/user”,method = RequestMethod.POST)
作用:對(duì)應(yīng)添加,添加數(shù)據(jù),表明是一個(gè)添加請(qǐng)求
3. @PutMapping
對(duì)應(yīng)注解
@RequestMapping(value = “/modify/user”,method = RequestMethod.PUT)
作用:對(duì)應(yīng)更新,更新數(shù)據(jù),表明是一個(gè)更新請(qǐng)求
4. @DeleteMapping
對(duì)應(yīng)注解
@RequestMapping(value = “/del/{id}”,method = RequestMethod.DELETE)作用:對(duì)應(yīng)刪除,刪除數(shù)據(jù),表明是一個(gè)刪除請(qǐng)求
5.@PathVariable
用于處理路徑參數(shù): /list/{id}
常用于Get,Delete
可以匹配正則表達(dá)式 例如:{id: [a-zA-Z0-9]+} 不符合正則會(huì)報(bào)404
@RequestMapping("/list/{id}")
public xxx list(@PathVariable String id){
return xxx;
}
// 或者
@RequestMapping("/list/{id}")
public xxx list(@PathVariable("id") String id){
return xxx;
}6. @RequestParam
用于處理請(qǐng)求頭內(nèi)的元素:Content-Type
常用于Get,Delete
可加可不加:不加則 /list或/list?id=xxx都能訪問成功服務(wù);
加上需要required默認(rèn)為true必須用/list?id=xxx,設(shè)置required為false則于不加一樣
@RequestMapping("/list")
public xxx list(String id){
return xxx;
}
// 兩者效果一樣
@RequestMapping("/list")
public xxx list(@RequestParam(value="id",required=false) String id){
return xxx;
}- value:請(qǐng)求參數(shù)名;
- required:是否必需,默認(rèn)為 true; true 標(biāo)識(shí)必須帶參數(shù)例如:/list?id=xxx;反之則為/list
- defaultValue:默認(rèn)值,設(shè)置該值,required 將自動(dòng)設(shè)為 false,不傳則值為defaultValue設(shè)置的默認(rèn)值
7.@RequestBody
用于處理請(qǐng)求體中的內(nèi)容: application/json,application/xml
常用于:Post,Put
加上RequestBody后會(huì)自動(dòng)轉(zhuǎn)換成map,list,實(shí)體類等
傳參的方式,對(duì)應(yīng)以上三種注解:
- 路徑參數(shù): /list/{id}
- 請(qǐng)求頭:/list?id=xxx
- 請(qǐng)求體: json或xml
@RequestParam和@PathVariable相同點(diǎn)和區(qū)別
相同點(diǎn):
- 根據(jù)用戶輸入不同獲取不同服務(wù)
不同點(diǎn):
PathVariable:
- 路徑傳值:/list/{name}/file/{id} => /list/user1/file/123; /list/user2/file/223
必須傳值
- 多用于:當(dāng)URL指向的是某一具體業(yè)務(wù)資源(或資源列表),例如博客,用戶時(shí)
RequestParam:
- 請(qǐng)求頭傳值/list?id=xxx
- 可以通過required選擇傳不傳
- 可以通過defaultValue設(shè)置默認(rèn)值
多用于:當(dāng)URL需要對(duì)資源或者資源列表進(jìn)行過濾,篩選時(shí)
8.RequestBody和RequestParam分別支持的類型
在 Spring MVC 中,`@RequestBody` 和 `@RequestParam` 注解都可以用于接收請(qǐng)求參數(shù),但是它們所支持的參數(shù)類型有所不同。
`@RequestBody` 注解不支持簡單類型參數(shù)的接收,它可以將請(qǐng)求體中的數(shù)據(jù)以快捷的方式綁定到 Java 對(duì)象或?qū)ο蠹?/strong>上。
需要注意的是,`@RequestBody` 默認(rèn)只能接收 Content-Type 為 application/json 的請(qǐng)求體,但是您可以通過配置更改為接收其他類型的請(qǐng)求體
例如 application/xml、application/x-www-form-urlencoded 等。
常見數(shù)據(jù)類型:
- JSONObject,List<String>, Map<String, String>,Java對(duì)象
- JSON 格式的請(qǐng)求體:將請(qǐng)求體轉(zhuǎn)為 Java 對(duì)象
- XML 格式的請(qǐng)求體:將請(qǐng)求體轉(zhuǎn)為 Java 對(duì)象
- application/x-www-form-urlencoded 格式的請(qǐng)求體:將請(qǐng)求體轉(zhuǎn)為一個(gè) Map<String, String> 對(duì)象
`@RequestParam` 注解則用于接收 URL 查詢字符串中的參數(shù),或者表單中的參數(shù),它支持簡單類型參數(shù)的接收
例如 String、int、double 等基本類型,同時(shí)也支持自定義類型的轉(zhuǎn)換。
常見數(shù)據(jù)類型:
- String:接收一個(gè)字符串參數(shù)
- 基本類型:int、long、float、double、short、boolean 等
- 封裝類型:Integer、Long、Float、Double、Short、Boolean 等
- 日期類型:java.util.Date、java.time.Instant、java.time.LocalDate、java.time.LocalDateTime 等
- 文件類型:MultipartFile、Part 等
總之
當(dāng)您需要處理請(qǐng)求體中的數(shù)據(jù)時(shí),使用 `@RequestBody` 注解;當(dāng)您需要處理 URL 中的查詢字符串或表單數(shù)據(jù)時(shí),使用 `@RequestParam` 注解。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatisPlus中事務(wù)處理的實(shí)現(xiàn)
本文主要介紹了MyBatisPlus中事務(wù)處理的實(shí)現(xiàn),包括事務(wù)的開啟、提交、回滾等操作,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
Java Spring-Cache key配置注意事項(xiàng)介紹
本文主要對(duì)java spring-cache key配置注意事項(xiàng)進(jìn)行了介紹,小編覺得還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-10-10
SpringBoot之Java配置的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot之Java配置的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
關(guān)于Spring的@Transaction導(dǎo)致數(shù)據(jù)庫回滾全部生效問題(又刪庫跑路)
使用@Transactional一鍵開啟聲明式事務(wù), 這就真的事務(wù)生效了?過于信任框架總有“意外驚喜”。本文通過案例給大家詳解關(guān)于Spring的@Transaction導(dǎo)致數(shù)據(jù)庫回滾全部生效問題,感興趣的朋友一起看看吧2021-05-05

