【數據校驗】@validated註解

使用方法

  1. 創建實體bean

    @Data
    public class OprStaDelayFeeUpdParam extends BaseParam {
    
        @NotNull
        private Integer staDelayFeePkId;
    
        @NotBlank
        @Length(max = 50)
        private String feeName;
    
        @NotNull
        private Integer hasTimeType;
    
        @DecimalMin("0")
        private BigDecimal slotDelayPrice;
    
        @NotNull
        private Integer freeMinutes;
    
        @Valid
        private List<OprStaDelayFeeDetailParam> details;
    
    }
    
    
  2. 創建Controller

    ResponseResult<OprStaDelayFeeVo> updateDelayFeeInfo(@RequestBody @Validated OprStaDelayFeeUpdParam param);
    
    ResponseResult<OprStaDelayFeeVo> updateDelayFeeInfo(@RequestBody @Validated OprStaDelayFeeUpdParam param,BindingResult result);
    

    當請求參數不滿足註解定義規範時,將直接返回錯誤提示;推薦使用第一種將錯誤信息統一返回,不用每個接口都傳入BindingResult

註解介紹

註解 說明
@Null 限制只能爲null
@NotNull 限制必須不爲nul
@AssertFalse 限制必須爲false
@AssertTrue 限制必須爲true
@DecimalMax(value) 限制必須爲一個不大於指定值的數字
@DecimalMin(value) 限制必須爲一個不小於指定值的數字
@Digits(integer,fraction) 限制必須爲一個小數,且整數部分的位數不能超過integer,小數部分的位數不能超過fraction
@Future 限制必須是一個將來的日期
@Max(value) 限制必須爲一個不大於指定值的數字
@Min(value) 限制必須爲一個不小於指定值的數字
@Past 限制必須是一個過去的日期
@Pattern(value) 限制必須符合指定的正則表達式
@Size(max,min) 限制字符長度必須在min到max之間
@Past 驗證註解的元素值(日期類型)比當前時間早
@NotEmpty 驗證註解的元素值不爲null且不爲空(字符串長度不爲0、集合大小不爲0)
@NotBlank 驗證註解的元素值不爲空(不爲null、去除首位空格後長度爲0),只應用於字符串且在比較時會去除字符串的空格
@Email 驗證註解的元素值是Email,也可以通過正則表達式和flag指定自定義的email格式

@validated和@valiad的不同點

  1. @validated 支持分組
  2. 註解位置: @validated可以用在方法參數,方法上,不能用在屬性上;@valiad可以直接用於屬性上
  3. @valiad 支持嵌套校驗

@validated使用注意點

  1. @validated 和@valid都可以用在controller層的參數前面,但只能再controller層生效
  2. @validated 如果要開啓方法驗證;註解應該打在類上,而不是參數上
  3. 註解也可以用於方法返回值的校驗
  4. 不支持嵌套檢驗,如果要進行嵌套檢驗使用@valid對實體屬性進行修飾
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章