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格式?