java的Bean Validation 2.0

寵の児 提交于 2019-12-21 10:59:38

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

一、什么是Bean Validation 2.0。

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向java管理组织,JCP(Java Community Process)标准组织提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

二、 Bean Validation 的链接:

也就是说JSR提出了一个标准JSR #380 Bean Validation 2.0。然后hibernate-validator实现了这个标准。(类似于JDBC,然后其他厂商实现JDBC)

三、Bean Validation 的用法。

1、在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。超过就会校验错误。

2、然后controller中直接使用:

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

四、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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!