java的Bean Validation 2.0

1、什麼是Bean Validation 2.0。

JSR是Java Specification Requests的縮寫,意思是Java 規範提案。是指向java管理組織,JCP(Java Community Process)標準組織提出新增一個標準化技術規範的正式請求。任何人均可以提交JSR,以向Java平臺增添新的API和服務。JSR已成爲Java界的一個重要標準。java

2、 Bean Validation 的連接:

也就是說JSR提出了一個標準JSR #380 Bean Validation 2.0。而後hibernate-validator實現了這個標準。(相似於JDBC,而後其餘廠商實現JDBC)git

3、Bean Validation 的用法。

一、在springboot中,直接在java屬性上面使用Bean Validation的註解。以下:

public class CustomerUpdateVO{

    @Size(max = 32)
    private String name;
    @Size(max = 255)
    private String coverImg;
    //省略getter、setter。
 }
  • @Size(max = 255) 表示這個屬性的最大長度是255。超過就會校驗錯誤。

二、而後controller中直接使用:

@PutMapping("/{id}")
    public  update(@PathVariable String id, @Valid @RequestBody CustomerUpdateVO updateVO) {
    	//其餘代碼
    }

4、Bean Validation 2.0 都有哪些註解。

  1. 其餘的註解能夠查看Bean Validation 2.0的標準文檔: https://beanvalidation.org/2.0/spec/
  2. 也能夠查看API文檔:https://docs.jboss.org/hibernate/beanvalidation/spec/2.0/api/
  3. 經過查看API文檔,能夠看到Bean Validation 2.0有下面這些內置的檢驗規則。具體使用後面補充。
  • AssertFalse
  • AssertFalse.List
  • AssertTrue
  • AssertTrue.List
  • DecimalMax
  • DecimalMax.List
  • DecimalMin
  • DecimalMin.List
  • Digits 帶註釋的元素必須是可接受範圍內的數字。支持的類型是:
    BigDecimal、BigInteger、字符串,(byte, short, int, long 和他們的包裝類)。null元素被認爲是有效的。
    例如:@Digits(integer = 6, fraction = 2)
    integer表示: 此數字接受的最大整數位數。這裏是6;fraction 表示:此數字接受的最大小數位數,這裏是2
  • Digits.List
  • Email
  • Email.List
  • Future
  • Future.List
  • FutureOrPresent
  • FutureOrPresent.List
  • Max
  • Max.List
  • Min
  • Min.List
  • Negative
  • Negative.List
  • NegativeOrZero
  • NegativeOrZero.List
  • NotBlank 帶註釋的元素不能是null,必須包含至少一個非空字符。
    支持的類型string(字符串至少一個非空字符)。
  • NotBlank.List
  • NotEmpty 帶註釋的元素不能null或空。
    支持的類型:string(字符串長度),Collection(集合大小), Map(map的大小), Array(數組的長度)
  • NotEmpty.List
  • NotNull
  • NotNull.List
  • Null
  • Null.List
  • Past
  • Past.List
  • PastOrPresent
  • PastOrPresent.List
  • Pattern
  • Pattern.List
  • Positive 帶註釋的元素必須嚴格正數(即0被認爲是一個無效的值)。null元素被認爲是有效的。
    支持的類型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他們的包裝類)
  • Positive.List
  • PositiveOrZero 帶註釋的元素必須是正數或0。null元素被認爲是有效的。
    支持的類型:BigDecimal、BigInteger、(byte, short, int, long, float, double 和他們的包裝類)
  • PositiveOrZero.List
  • Size 帶註釋的元素大小必須在指定的邊界之間(包括)。null元素被認爲是有效的。
    支持的類型:string(字符串長度),Collection(集合大小), Map(map的大小), Array(數組的長度)
  • Size.List
相關文章
相關標籤/搜索