在使用springboot開發時,常常需要對前端傳過來的參數進行校驗。自己寫語句校驗,不僅繁瑣,還影響代碼的規範,因此,可以採用validation進行校驗。
validation校驗 大致分爲三步。
1.在bean上加註解,對各變量進行約束,並給出錯誤提示。
2.在controller層的參數前,加上@validation 註解
3.定義一個全局異常類controller,針對該異常進行處理。
例子如下。
1.在bean上加註解
@Data
public class UserInfo implements Serializable {
private static final long serialVersionUID = -2438794894583502939L;
private Long id;
@NotBlank(message = "名字不能爲空")
private String name;
@Max(value = 45,message = "不能超過45歲")
@Min(value = 18,message = "未成年不行")
private Integer age;
}
2.在controller層的參數前,加上@validation 註解
@GetMapping("/abc")
public String inputMsg(@RequestBody @Validated UserInfo userInfo){
return userInfo.toString();
}
3.定義一個全局異常類controller
@ControllerAdvice
public class AdminExceptionHandler {
@ResponseBody
@ExceptionHandler(value = Exception.class)
public String getException(Exception e){
return e.getMessage();
}
@ResponseBody
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public String getException(MethodArgumentNotValidException e){
List<ObjectError> errors =e.getBindingResult().getAllErrors();
StringBuffer sb = new StringBuffer();
errors.stream().forEach(s->sb.append(s.getDefaultMessage()));
return sb.toString();
}
}
tips:
1.對於不滿足限定條件的參數,將拋出 MethodArgumentNotValidException 異常
2.常見的約束有: