怎么在Springboot中使用JSR303校验参数

  介绍

本篇文章给大家分享的是有关怎么在Springboot中使用JSR303校验参数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

<强> 1,pom导入依赖

& lt; dependency>   & lt; groupId> org.springframework.boot   & lt; artifactId> spring-boot-starter-validation   & lt;/dependency>

<强> 2,注解类型

怎么在Springboot中使用JSR303校验参数

(1)空检查

@Null 验证对象是否为null   @NotNull 验证对象是否不为null,,无法查检长度为0的字符串   @NotBlank 检查约束字符串是不是零还有被修剪的长度是否大于0,只对字符串,且会去掉前后空格。   @NotEmpty 检查约束元素是否为零或者是空的。

(2) Booelan检查

@AssertTrue 验证,Boolean 对象是否为,真的   @AssertFalse 验证,Boolean 对象是否为,假

(3)长度检查

@ (min=,, max=),验证对象(数组、集合、映射字符串)长度是否在给定的范围之内   @Length (min=,, max=),验证字符串的长度在最小和最大范围之内。

(4)日期检查

@Past 验证,Date 和,Calendar 对象是否在当前时间之前,验证成立的话被注释的元素一定是一个过去的日期   @Future 验证,Date 和,Calendar 对象是否在当前时间之后,,验证成立的话被注释的元素一定是一个将来的日期   @Pattern 验证,String 对象是否符合正则表达式的规则,被注释的元素符合制定的正则表达式,regexp:正则表达式,旗帜:,指定,Pattern.Flag 的数组,表示正则表达式的相关选项。

(5)数值检查

建议使用在Stirng,整数类型,不建议使用在int类型上,因为表单值为““时无法转换为int,但可以转换为Stirng为““、整数为null   @Min 验证,Number 和,String 对象是否大等于指定的值   @Max 验证,Number 和,String 对象是否小等于指定的值   @DecimalMax 被标注的值必须不大于约束中指定的最大值只这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示。小数存在精度   @DecimalMin 被标注的值必须不小于约束中指定的最小值只这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示。小数存在精度   @Digits 验证,Number 和,String 的构成是否合法   @Digits (integer=⒎质?),验证字符串是否是符合指定格式的数字,指浮点数值用定整数精度,分数指定小数精度。   @Range (min=,, max=),被指定的元素必须在合适的范围内   @Valid 递归的对关联对象进行校验,,如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个地图,则对其中的值部分进行校验。(是否进行递归验证)   @CreditCardNumber信用卡验证    验证是否是邮件地址,如果为null,不进行验证,算通过验证。   脚本@ScriptAssert (lang=,=,,别名=)=(协议、主机=,=港regexp=,=)旗帜

<强> 3,自定义验证类

(1)自定义注解,至少需要包含消息()、组(),有效载荷()

@Target({,方法,字段,ANNOTATION_TYPE,,构造函数,,PARAMETER })   @Retention(运行时)   @Documented   @Constraint (validatedBy =, {IsRightValidator.class })   public  @interface  IsRight  {      boolean 正确的(),default 真实;      String 消息(),default “这是验证失败的提示信息“;   ,   Class<?在[],团体(),default  {,};   ,   Class<?, extends  Payload>[],有效载荷(),default  {,};   }

(2)自定义注解校验器类,继承ConstraintValidator类& lt;注解类,注解参数类型比;,重写,两个方法(初始化:初始化操作,isValid:逻辑处理)

public  class  IsRightValidator  implements  ConstraintValidator<染指,String>, {   ,   private  boolean 右=,假;   @Override   public  void 初始化(IsRight  constraintAnnotation), {   时间=right  constraintAnnotation.right ();   }   ,   @Override。才能   public  boolean  isValid (String 价值,ConstraintValidatorContext 上下文),{   如果(右),{   return 真实;   }else  {   return 假;   }   }

怎么在Springboot中使用JSR303校验参数