AI智能
改变未来

JSR303数据校验笔记


JSR303数据校验笔记

要使用JSR303数据校验,首先要导入相关依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

其次,需要在所编写的实体类上加上@Validated注解,开启校验功能

@Component@ConfigurationProperties(prefix = \"user\")@Validatedpublic class User {@Email(message = \"邮箱地址格式错误\")//这里验证name是否为邮箱格式,不是则报错,打印出提示信息 \"邮箱地址格式错误\",当然不设置message的话会有默认的报错信息private String name;private String email;}

在配置文件application.yaml中配置实体类User

user:name: xin3123email: [email protected]

写一个测试类尝试打印出User进行测试

@SpringBootTestclass TestJsr303ApplicationTests {@Autowiredprivate User user;@Testvoid contextLoads() {System.out.println(user);}

运行测试结果为:

所以实现了数据校验

数据校验有许多注解,针对不同需求的校验方式,以下是一些常用的校验规则

@NotNull(message=“名字不能为空”)
private String userName;

@Max(value=120,message=“年龄最大不能查过120”)
private int age;

@Email(message=“邮箱格式错误”)
private String email;

空检查@Null
验证对象是否为null

@NotNull
验证对象是否不为null, 无法查检长度为0的字符串

@NotBlank
检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.

@NotEmpty
检查约束元素是否为NULL或者是EMPTY. Booelan检查

@AssertTrue
验证 Boolean 对象是否为 true

@AssertFalse
验证 Boolean 对象是否为 false

长度检查@Size(min=, max=)
验证对象(Array,Collection,Map,String)长度是否在给定的范围之内

@Length(min=, max=) string is between min and max included.

日期检查@Past
验证 Date 和 Calendar 对象是否在当前时间之前

@Future
验证 Date 和 Calendar 对象是否在当前时间之后

@Pattern
验证 String 对象是否符合正则表达式的规则
…等等除此以外,我们还可以自定义一些数据校验规则

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » JSR303数据校验笔记