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注釋代表的是一個資源可以接受的MIME類型煮寡。
@Produces注釋代表的是一個資源可以返回的MIME類型妆毕。
@RequestMapping(value = "/article/{id}", method = GET, produces = "application/json")
@RequestParam和@RequestBody的區(qū)別
區(qū)別:由于spring的RequestParam注解接收的參數(shù)是來自于requestHeader中流强,即請求頭痹届,也就是在url中,格式為xxx?username=123&password=456打月,而RequestBody注解接收的參數(shù)則是來自于requestBody中队腐,即請求體中。
使用說明:如果為get請求時奏篙,后臺接收參數(shù)的注解應(yīng)該為RequestParam柴淘,如果為post請求時,則后臺接收參數(shù)的注解就是為RequestBody秘通。
@RequestParam參數(shù)說明:
* value值 即請求參數(shù)名
* required 該參數(shù)是否必需悠就。默認(rèn)為true
* defaultValue請求參數(shù)的默認(rèn)值
@Valid??驗證參數(shù)
? ?@ResponseBody
? ?@PostMapping(value="/add")
? ? public String add(@Valid Student student){
? ? ? ? ? ? studentService.add(student);
? ? ? ? ? ? return "添加成功!";
? ? }
Student 實體舉例:
public class Student {
? ? @NotEmpty(message="姓名不能為空充易!")
? ? @Column(length=50)
? ? private String name;
? ? public String getName() {
? ? ? ? return name;
? ? }
? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }
}
注解說明:
@Null 限制只能為null?
@NotNull 限制必須不為null?
@AssertFalse 限制必須為false?
@AssertTrue 限制必須為true?
@DecimalMax(value) 限制必須為一個不大于指定值的數(shù)字?
@DecimalMin(value) 限制必須為一個不小于指定值的數(shù)字?
@Digits(integer,fraction) 限制必須為一個小數(shù)梗脾,且整數(shù)部分的位數(shù)不能超過integer,小數(shù)部分的位數(shù)不能超過fraction?
@Future 限制必須是一個將來的日期?
@Max(value) 限制必須為一個不大于指定值的數(shù)字?
@Min(value) 限制必須為一個不小于指定值的數(shù)字?
@Pattern(value) 限制必須符合指定的正則表達(dá)式?
@Size(max,min) 限制字符長度必須在min到max之間?
@Past 驗證注解的元素值(日期類型)比當(dāng)前時間早?
@NotEmpty 驗證注解的元素值不為null且不為空(字符串長度不為0盹靴、集合大小不為0)?
@NotBlank 驗證注解的元素值不為空(不為null炸茧、去除首位空格后長度為0),不同于@NotEmpty稿静,@NotBlank只應(yīng)用于字符串且在比較時會去除字符串的空格?
@Email 驗證注解的元素值是Email梭冠,也可以通過正則表達(dá)式和flag指定自定義的email格式?