springboot validation 進行參數校驗

在使用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.常見的約束有:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章