Java中4种校验注解详解(值校验、范围校验、长度校验、格式校验)

 更新时间:2023年08月15日 10:14:04   作者:ddwangbin520  
这篇文章主要给大家介绍了关于Java中4种校验注解详解的相关资料,分别包括值校验、范围校验、长度校验、格式校验等,Java注解(Annotation)是一种元数据,它可以被添加到Java代码中,并可以提供额外的信息和指令,需要的朋友可以参考下

1 值校验

1.1 @NotNull注解

被注解的元素必须不为空,一般用于数值类型的参数校验

@NotNull(message = "用户编号不能为空")
private Integer userId;

1.2 @NotBlank注解

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

@NotBlank(message = "用户名称不能为空")
private String userName;

1.3 @NotEmpty注解

验证注解的集合类参数不能为空。

@NotEmpty(message = "用户列表不能为空")
private List<Integer> userIds;

2 范围校验

2.1 @Min注解

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

@Min(value = 18, message = "必须大于等于18")
private int age;

2.2 @Max注解

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

@Max(value = 18, message = "必须小于等于18")
private int age;

2.3 @DecimalMin注解

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

@DecimalMin(value = "150", message = "高度必须大于等于150")
private BigDecimal height;

2.4 @DecimalMax注解

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

@DecimalMax(value = "300", message = "必须小于等于300")
private BigDecimal height;

2.5 @Range注解

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

@Range(max = 80, min = 18, message = "必须大于等于18且小于等于80")
private int age;

3 长度校验

3.1 @Size注解

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

@Size(max = 11, min = 7, message = "长度必须大于等于7或小于等于11")
private String mobile;

3.2 @Length注解

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

@Length(max = 11, min = 7, message = "长度必须大于等于7且小于等于11")
private String mobile;

4 格式校验

4.1 @Digits注解

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

@Digits(integer=3,fraction = 2,message = "整数位上限为3位,小数位上限为2位")
private BigDecimal height;

4.2 @Pattern注解

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

@Pattern(regexp = "\\d{11}",message = "必须为数字,并且长度为11")
private String mobile;

4.3 @Email注解

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

 @Email(message = "必须是邮箱格式的字符串")
private String email;

总结

到此这篇关于Java中4种校验注解(值校验、范围校验、长度校验、格式校验)的文章就介绍到这了,更多相关Java校验注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot结合mybatis-plus快速生成项目模板的方法

    springboot结合mybatis-plus快速生成项目模板的方法

    Mybatis-Plus是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生,接下来通过本文给大家分享springboot结合mybatis-plus快速生成项目模板的方法,感兴趣的朋友一起看看吧
    2021-06-06
  • SpringBoot使用JTA实现对多数据源的事务管理

    SpringBoot使用JTA实现对多数据源的事务管理

    了解事务的都知道,在我们日常开发中单单靠事务管理就可以解决绝大多数问题了,但是为啥还要提出JTA这个玩意呢,到底JTA是什么呢?他又是具体来解决啥问题的呢?本文小编就给大家介绍一下如何在Spring Boot中使用JTA实现对多数据源的事务管理
    2023-11-11
  • SpringBoot通过整合Dubbo解决@Reference注解问题

    SpringBoot通过整合Dubbo解决@Reference注解问题

    这篇文章主要介绍了SpringBoot通过整合Dubbo解决@Reference注解问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • 解决Elasticsearch因jdk版本问题启动失败的问题

    解决Elasticsearch因jdk版本问题启动失败的问题

    这篇文章主要介绍了解决Elasticsearch因jdk版本问题启动失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java Spring Boot实现简易扫码登录详解

    Java Spring Boot实现简易扫码登录详解

    这篇文章主要为大家详细介绍了java Spring Boot实现app扫码登录功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-09-09
  • java实现24点游戏

    java实现24点游戏

    每次取出4张牌,使用加减乘除,第一个能得出24者为赢,这篇文章主要就为大家详细介绍了java实现24点游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • Spring Boot如何优化内嵌的Tomcat示例详解

    Spring Boot如何优化内嵌的Tomcat示例详解

    spring boot默认web程序启用tomcat内嵌容器,监听8080端口,下面这篇文章主要给大家介绍了关于Spring Boot如何优化内嵌Tomcat的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • jdk17+springboot使用webservice的踩坑实战记录

    jdk17+springboot使用webservice的踩坑实战记录

    这篇文章主要给大家介绍了关于jdk17+springboot使用webservice踩坑的相关资料,网上很多教程是基于jdk8的,所以很多在17上面跑不起来,折腾两天,直接给答案,需要的朋友可以参考下
    2024-01-01
  • Java API学习教程之正则表达式详解

    Java API学习教程之正则表达式详解

    正则表达式的强大众所周知,它令程序员的头痛程度也数一数二的。下面这篇文章主要给大家介绍了关于Java API学习教程之正则表达式的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 详解Java中AC自动机的原理与实现

    详解Java中AC自动机的原理与实现

    AC自动机是一个多模式匹配算法,在模式匹配领域被广泛应用。本文将详细为大家介绍AC自动机的原理与实现方法,感兴趣的可以了解一下
    2022-05-05

最新评论