当前位置: 代码迷 >> 综合 >> SpringBoot2.X学习(三):JSR-303请求参数校验
  详细解决方案

SpringBoot2.X学习(三):JSR-303请求参数校验

热度:47   发布时间:2024-01-29 20:44:06.0

一、什么是JSR?

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

二、JSR-303定义的是什么标准?

JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 的实现,除此之外还有一些附加的 constraint。

三、Bean Validation中内置的constraint

  1. @Null:被注释的元素必须为null
  2. @NotNull:被注释的元素必须不为null
  3. @AssertTrue:被注释的元素必须为true
  4. @AssertFalse:被注释的元素必须为false
  5. @Min:被注释的元素必须是一个数字,且必须大于等于指定最小值
  6. @Max:被注释的元素必须是一个数字,且必须小于等于指定最小值
  7. @DecimalMin(value):被注释的元素必须是一个数字,且必须大于等于指定最小值
  8. @DecimalMax(value):被注释的元素必须是一个数字,且必须小于等于指定最小值
  9. @Size(min,max):被注释元素大小必须在指定的范围内
  10. @Digits(integer,fraction):被注释元素必须是数字,且值必须在可接受范围内
  11. @Past:被注释的元素必须是一个过去的日期
  12. @Future:被注释的元素必须是一个将来的日期
  13. @Pattern(value):被注释的元素必须符合指定的正则表达式

Hibernate Validator附加的constraint:

  1. @Email:被注释的元素必须是电子邮箱地址
  2. @Length:被注释的字符串长度必须在指定的范围内
  3. @NotEmpty:被注释的字符串必须非空
  4. @Range:被注释的元素必须在合适的范围内

四、Swagger支持

目前,Swagger共支持以下几个注解:

  • @NotNull
  • @Max
  • @Min
  • @Size
  • @Pattern