当前位置:   article > 正文

java中参数校验的运用和常用的几种校验注解_java入参校验

java入参校验

一,导入校验的依赖包:

  1. <!--第一种方式导入校验依赖-->
  2. <dependency>
  3. <groupId>javax.validation</groupId>
  4. <artifactId>validation-api</artifactId>
  5. <version>2.0.1.Final</version>
  6. </dependency>
  7. <!--第二种方式导入校验依赖-->
  8. <dependency>
  9. <groupId>org.hibernate.validator</groupId>
  10. <artifactId>hibernate-validator</artifactId>
  11. </dependency>

二,在找到自己的实体类定义自己要校验的参数

 三,就是@Valid和@Validated的用法(区别)

   1-1:@Valid作为标准JSR-303规范,还没有吸收分组的功能

   1-2:@ValidatedJSR-303规范,提供了一个分组功能,可以在校验时,根据不同的分组采取不同的校验机制

 如图:

1. @Validated(addGroup.class)就是给参数进行了分组校验

 2.被我注解过的就是@Valid的用法(用的少不多说)

四,有人会问addGroup.class是哪里来的啊

    addGroup.class:是一个接口类,简单的来说:就是用来给参数做标记的(里面不需要写任何代码)

五,来说一下常用的几个注解:

   1.@NotNull :被注解的元素必须不为null

    2.@NotBlank注解 :验证注解的元素值不为空(不为null、去除首位空格后长度为0) ,并且类型为String。   

   3.@NotEmpty注解 :验证注解的元素值不为null且不为空(字符串长度不为0、集合大小不为0) ,并且类型为String。

   4.@AssertTrue注解 :被注解的元素必须为true,并且类型为boolean。

   5.@AssertFalse注解 :被注解的元素必须为false,并且类型为boolean。

   6.@Min注解 :被注解的元素其值必须大于等于最小值,并且类型为int,long,float,double。

   7. @Max注解:被注解的元素其值必须小于等于最小值,并且类型为int,long,float,double。

   8.@DecimalMin注解 :验证注解的元素值大于等于@DecimalMin指定的value值,并且类型为BigDecimal

   9.@DecimalMax注解 :验证注解的元素值小于等于@DecimalMax指定的value值 ,并且类型为BigDecimal。

  10. @Range注解 :验证注解的元素值在最小值和最大值之间,并且类型为BigDecimal,BigInteger,CharSequence,byte,short,int,long。

  11.@Past注解 :被注解的元素必须为过去的一个时间,并且类型为java.util.Date。

  12. @Future注解 :被注解的元素必须为未来的一个时间,并且类型为java.util.Date。

  13.@Size注解 :被注解的元素的长度必须在指定范围内,并且类型为String,Array,List,Map。

    14.@Length注解 :验证注解的元素值长度在min和max区间内 ,并且类型为String。

  15.@Digits注解 :验证注解的元素值的整数位数和小数位数上限 ,并且类型为float,double,BigDecimal。

    16.@Pattern注解 :被注解的元素必须符合指定的正则表达式,并且类型为String。

    17.@Email注解: 验证注解的元素值是Email,也可以通过regexp和flag指定自定义的email格式,类型为String。

六,如果在写项目的过程中,参数需要的条件注解满足不上,则我们需要自定义注解来完成

第一步:建一个自定义的注解类:如图:

 第二步:建一个逻辑处理数据的方法 :如图:

 第三步:String message() default "{com.atguigu.common.valid.ListValue.message}";

这个消息:message() default "{com.atguigu.common.valid.ListValue.message}";

可以在配置文件中来写:

 第四步:在实体类中来调用:

完成!

有用记得关注,点赞哦

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/310726
推荐阅读
相关标签
  

闽ICP备14008679号