話不多說上代碼
UserController類
@RestController
@RequestMapping("/user")
public class UserController {
@PostMapping("/add")
public User add(@Validated(value = User.Add.class) @RequestBody User user) {
return user;
}
@PostMapping("/update")
public User update(@Validated(value = User.Update.class) @RequestBody User user) {
return user;
}
}
MethodsExceptionHandler攔截器類
@RestControllerAdvice
public class MethodsExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public JSONResult ex(MethodArgumentNotValidException ex) {
List<ObjectError> allErrors = ex.getBindingResult().getAllErrors();
return JSONResult.errorException(getErrorMessage(allErrors));
}
private String getErrorMessage(List<ObjectError> allErrors) {
String errorMessage = "";
for (int i = allErrors.size() - 1; i >= 0; i--) {
errorMessage += allErrors.get(i).getDefaultMessage() + ",";
}
return errorMessage.substring(0, errorMessage.length() - 1);
}
}
User類
@Data
public class User {
public interface Add {
}
public interface Update {
}
@NotNull(message = "id不能爲空", groups = Update.class)
@Null(message = "id必須爲空", groups = Add.class)
private Integer id;
@NotEmpty(message = "名字不能爲空", groups = {Update.class, Add.class})
private String name;
@Pattern(message = "電話號碼格式不正確", regexp = "^[1](([3|5|8][\\d])|([4][5,6,7,8,9])|([6][5,6])|([7][3,4,5,6,7,8])|([9][8,9]))[\\d]{8}$")
private String phon5e;
@Email
private String email;
@Max(message = "年齡最大不能超過150", value = 150, groups = {Update.class, Add.class})
@Min(message = "年齡最小不能低於0", value = 0, groups = {Update.class, Add.class})
private String age;
}
分組驗證以及各種校驗的註解可以自行百度,資料有很多
JSONResult類 這是一個封裝好的用於json返回的工具類 使用起來比較方便!特別好!!!摘自imooc
public class JSONResult {
// 定義jackson對象
private static final ObjectMapper MAPPER = new ObjectMapper();
// 響應業務狀態
private Integer status;
// 響應消息
private String msg;
// 響應中的數據
private Object data;
@JsonIgnore
private String ok; // 不使用
public static JSONResult build(Integer status, String msg, Object data) {
return new JSONResult(status, msg, data);
}
public static JSONResult build(Integer status, String msg, Object data, String ok) {
return new JSONResult(status, msg, data, ok);
}
public static JSONResult ok(Object data) {
return new JSONResult(data);
}
public static JSONResult ok() {
return new JSONResult(null);
}
public static JSONResult errorMsg(String msg) {
return new JSONResult(500, msg, null);
}
public static JSONResult errorMap(Object data) {
return new JSONResult(501, "error", data);
}
public static JSONResult errorTokenMsg(String msg) {
return new JSONResult(502, msg, null);
}
public static JSONResult errorException(String msg) {
return new JSONResult(555, msg, null);
}
public static JSONResult errorUserQQ(String msg) {
return new JSONResult(556, msg, null);
}
public static JSONResult errorUserTicket(String msg) {
return new JSONResult(557, msg, null);
}
public JSONResult() {
}
public JSONResult(Integer status, String msg, Object data) {
this.status = status;
this.msg = msg;
this.data = data;
}
public JSONResult(Integer status, String msg, Object data, String ok) {
this.status = status;
this.msg = msg;
this.data = data;
this.ok = ok;
}
public JSONResult(Object data) {
this.status = 200;
this.msg = "OK";
this.data = data;
}
public Boolean isOK() {
return this.status == 200;
}
public Integer getStatus() {
return status;
}
public void setStatus(Integer status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public String getOk() {
return ok;
}
public void setOk(String ok) {
this.ok = ok;
}
}