首页 > 编程语言 >Java 4种校验注解(值校验、范围校验、长度校验、格式校验)

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

时间:2023-04-17 14:13:57浏览次数:34  
标签:Java String 校验 private 必须 注解 message

1 Maven依赖

<!--第一种方式导入校验依赖-->

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
</dependency>

<!--第二种方式导入校验依赖-->

<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

2 值校验

2.1 @Null注解
被注解的元素必须为null

@Null(message = "必须为null")
private String username;

2.2 @NotNull注解

被注解的元素必须不为null

@NotNull(message = "必须不为null")
private String username;

2.3 @NotBlank注解

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

@NotBlank(message = "必须不为空")
private String username;

2.4 @NotEmpty注解

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

@NotEmpty(message = "必须不为null且不为空")
private String username;

2.5 @AssertTrue注解

被注解的元素必须为true,并且类型为boolean。

@AssertTrue(message = "必须为true")
private boolean status;

2.6 @AssertFalse注解

被注解的元素必须为false,并且类型为boolean。

@AssertFalse(message = "必须为false")
private boolean status;

3 范围校验

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

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

3.2 @Max注解

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

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

3.3 @DecimalMin注解

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

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

3.4 @DecimalMax注解

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

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

3.5 @Range注解

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

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

3.6 @Past注解

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

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Past(message = "必须为过去的时间")
private Date createDate;

3.7 @Future注解

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

@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Future(message = "必须为未来的时间")
private Date createDate;

4 长度校验

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

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

4.2 @Length注解

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

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

5 格式校验

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

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

5.2 @Pattern注解

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

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

5.3 @Email注解

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

@Email(message = "必须是邮箱")
private String email;

 

标签:Java,String,校验,private,必须,注解,message
From: https://www.cnblogs.com/hezemin/p/17325661.html

相关文章

  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</version></dependency><dependency......
  • Java开发笔记13(树的结构修改记录)
    1.Controller:/***区域树生成*/@GetMapping("/list")privateResultregionTree(){Stationstation=getStation(getUser());StringstationCode=station.getStationTelecode();List<NewTreeVo>tree=stationInfRelaService.regionTree(stat......
  • Java中线程的常用操作-后台线程、自定义线程工厂ThreadFactpry、join加入一个线程、线
    场景Java中Thread类的常用API以及使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126596884上面讲了Thread的常用API,下面记录下线程的一些常用操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现后台线程后台线程,是指运行时在后台提供的一......
  • 【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介迭代器模式(IteratorPattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map等,这些集合都有自......
  • java json 四个格式
    java官方<dependency><groupId>org.json</groupId><artifactId>json</artifactId><version>20220320</version></dependency>codeJSONObjectjsonObject=newJSONObject();jsonObject.put("secretKey......
  • Spring AOP官方文档学习笔记(二)之基于注解的Spring AOP
    1.@Aspect注解(1)@Aspect注解用于声明一个切面类,我们可在该类中来自定义切面,早在Spring之前,AspectJ框架中就已经存在了这么一个注解,而Spring为了提供统一的注解风格,因此采用了和AspectJ框架相同的注解方式,这便是@Aspect注解的由来,换句话说,在Spring想做AOP框架之前,AspectJAOP框......
  • elementui表单循环添加校验
    1<el-form2:model="dynamicValidateForm"3ref="dynamicValidateForm"4:inline="true"5>6<templatev-for="(item,index)indynamicValidateForm.domains">......
  • idea Java json 复制字符串会出现空格的问题
    普通JSON{"secretKey":"2513e9c533c14271a1bc8a52eacecebe","appKey":"19b9257a1f464e93b087af9d12572ce1"}复制idea{\"secretKey\":\"2513e9c533c14271a1bc8a52eacecebe\",\"appKey\":\&......
  • java环境变量
    jdk安装路径C:\ProgramFiles\Java\jdk1.6.0_21java_homeC:\ProgramFiles\Java\jdk1.6.0_21classpath.;%JAVA_HOME%lib;%JAVA_HOME%lib\tools.jarPath%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin检查是否安装成功java-version  ant环境的配置配置ant 和 java的环境  ......
  • Java位运算符
    前置知识原码、反码、补码-原码:第一位表示符号,其余位表示值。如2原码:00000010;-2原码:10000010-反码:正数的反码是原码本身,负数的反码在原码基础上,符号位不变,其他位取反。如:2反码:00000010;-2反码:11111101-补码:正数的反码是原码本身,负数的补码在原码基础上,符号位不变,其他......