spring boot restful常用注解總結(jié)

RestController 相當(dāng)于@Controller 和 @RequestBody

@RequestMapping URL的映射。

@ResponseBody 返回結(jié)果轉(zhuǎn)換為JSON字符串。

@RequestBody 表示接收J(rèn)SON格式字符串參數(shù)。

@RequestMapping(value = "/saveUser", method = RequestMethod.POST)

@ResponseBody

public MapsaveUser( @RequestBody User user) throws Exception {

????????????Map map = new HashMap();

????????????map = userService.saveUser(user);

????????return map;

}

@PathVariable 路徑后面帶的參數(shù)

@RequestMapping(value = "/user/{id}")

? ? private Girl getUserOne(@PathVariable("id") Integer id){

? ? ? ?return userService.findOne(id);? ? ? ?

? }


@Conumes 和 @Produces

@Conumes注釋代表的是一個(gè)資源可以接受的MIME類(lèi)型。

@Produces注釋代表的是一個(gè)資源可以返回的MIME類(lèi)型。

@RequestMapping(value = "/article/{id}", method = GET, produces = "application/json")

@RequestParam和@RequestBody的區(qū)別

區(qū)別:由于spring的RequestParam注解接收的參數(shù)是來(lái)自于requestHeader中,即請(qǐng)求頭,也就是在url中,格式為xxx?username=123&password=456,而RequestBody注解接收的參數(shù)則是來(lái)自于requestBody中,即請(qǐng)求體中。

使用說(shuō)明:如果為get請(qǐng)求時(shí),后臺(tái)接收參數(shù)的注解應(yīng)該為RequestParam,如果為post請(qǐng)求時(shí),則后臺(tái)接收參數(shù)的注解就是為RequestBody。

@RequestParam參數(shù)說(shuō)明:

* value值 即請(qǐng)求參數(shù)名

* required 該參數(shù)是否必需。默認(rèn)為true

* defaultValue請(qǐng)求參數(shù)的默認(rèn)值

@Valid??驗(yàn)證參數(shù)

? ?@ResponseBody

? ?@PostMapping(value="/add")

? ? public String add(@Valid Student student){

? ? ? ? ? ? studentService.add(student);

? ? ? ? ? ? return "添加成功!";

? ? }

Student 實(shí)體舉例:

public class Student {

? ? @NotEmpty(message="姓名不能為空!")

? ? @Column(length=50)

? ? private String name;

? ? public String getName() {

? ? ? ? return name;

? ? }

? ? public void setName(String name) {

? ? ? ? this.name = name;

? ? }

}

注解說(shuō)明:

@Null 限制只能為null?

@NotNull 限制必須不為null?

@AssertFalse 限制必須為false?

@AssertTrue 限制必須為true?

@DecimalMax(value) 限制必須為一個(gè)不大于指定值的數(shù)字?

@DecimalMin(value) 限制必須為一個(gè)不小于指定值的數(shù)字?

@Digits(integer,fraction) 限制必須為一個(gè)小數(shù),且整數(shù)部分的位數(shù)不能超過(guò)integer,小數(shù)部分的位數(shù)不能超過(guò)fraction?

@Future 限制必須是一個(gè)將來(lái)的日期?

@Max(value) 限制必須為一個(gè)不大于指定值的數(shù)字?

@Min(value) 限制必須為一個(gè)不小于指定值的數(shù)字?

@Pattern(value) 限制必須符合指定的正則表達(dá)式?

@Size(max,min) 限制字符長(zhǎng)度必須在min到max之間?

@Past 驗(yàn)證注解的元素值(日期類(lèi)型)比當(dāng)前時(shí)間早?

@NotEmpty 驗(yàn)證注解的元素值不為null且不為空(字符串長(zhǎng)度不為0、集合大小不為0)?

@NotBlank 驗(yàn)證注解的元素值不為空(不為null、去除首位空格后長(zhǎng)度為0),不同于@NotEmpty,@NotBlank只應(yīng)用于字符串且在比較時(shí)會(huì)去除字符串的空格?

@Email 驗(yàn)證注解的元素值是Email,也可以通過(guò)正則表達(dá)式和flag指定自定義的email格式?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容