springboot 各種參數校驗


1,小結 :springboot 各種參數校驗 ,一般除了前端校驗外,后台對接口 也要做強制參數校驗(出於接口安全和參數格式不正確 考慮),規范考慮 一般對外提供的接口 或者 給別人調用 的公用方法(如工具類) 必須要求 強制參數校驗

 

 

 

1.1,常規校驗 

1.2 ,分組校驗 @Valid 注解是java javax.validation 包下面 不支持 分組 spring 在其基礎上擴展 了 組 校驗 @Validated

 

1.3,一般比較復雜的校驗 有可能在 web 不好處理 需要各種判斷 后校驗 這樣可以使用 其提供的工具類 在service 層 提供校驗

1.4 嵌套校驗 一般復雜的結構 嵌套了 對象嵌套了 list 對list 對應字段 校驗

1.5. 自定義校驗,當提供的很多注解無法滿足 要求時 可以考慮自定義注解 

 

1.6 簡單校驗單個參數 springmvc 需要配置  

<!--    方法級別的校驗  要校驗的方法所在類必須添加@Validated注解-->
<bean class="org.springframework.validation.beanvalidation.MethodValidationPostProcessor">
<property name="validator" ref="validator" />
</bean>

 

 

 

全局異常處理

總結:基本平時用的 注解 如下,用法 基本常用的就上面那些了 代碼 具體實現 https://gitee.com/www.lyc.com/lyc-demo.git可以參考 我的代碼庫 整理不易 記得 star 小伙伴們

Bean Validation 中內置的 constraint

@Null 被注釋的元素必須為 null
@NotNull 被注釋的元素必須不為 null
@AssertTrue 被注釋的元素必須為 true
@AssertFalse 被注釋的元素必須為 false
@Min(value) 被注釋的元素必須是一個數字,其值必須大於等於指定的最小值
@Max(value) 被注釋的元素必須是一個數字,其值必須小於等於指定的最大值
@DecimalMin(value) 被注釋的元素必須是一個數字,其值必須大於等於指定的最小值
@DecimalMax(value) 被注釋的元素必須是一個數字,其值必須小於等於指定的最大值
@Size(max=, min=) 被注釋的元素的大小必須在指定的范圍內
@Digits (integer, fraction) 被注釋的元素必須是一個數字,其值必須在可接受的范圍內
@Past 被注釋的元素必須是一個過去的日期
@Future 被注釋的元素必須是一個將來的日期
@Pattern(regex=,flag=) 被注釋的元素必須符合指定的正則表達式
Hibernate Validator 附加的 constraint

@NotBlank(message =) 驗證字符串非null,且長度必須大於0
@Email 被注釋的元素必須是電子郵箱地址
@Length(min=,max=) 被注釋的字符串的大小必須在指定的范圍內
@NotEmpty 被注釋的字符串的必須非空
@Range(min=,max=,message=) 被注釋的元素必須在合適的范圍內

補充的對象類型

 

補充: userList 必須 加 @Valid 不然校驗不生效 

 

 

 

 

 

  集合類型

  必須 @Valid 

@Validated 校驗則不生效

 

 

總結區別 

@Validated 支持分組 作用在類型 上,不支持集合類型
@Valid  不支持 分組可以 作用在 類型,集合,上

對象嵌套校驗可以 兩者一起使用。

 https://www.cnblogs.com/javaguide/p/11832752.html

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM