SpringBoot - 后端数据校验的实现
通常来说,为了提高系统运行效率,都会在前端进行数据校验,但后端的数据校验仍然必不可少,因为用户还是可能在获取数据接口后手动传入非法数据,所以后端还是需要做数据校验。
对于数据校验,Spring Boot 也提供了相关的自动化配置解决方案,下面通过样例进行演示。
一、普通校验
1,添加依赖
首先编辑项目的pom.xml 文件,添加数据校验相关的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2,创建校验出错的提示文件
在 resources 目录下创建一个 ValidationMessages.properties 文件(默认的创建校验出错的提示文件),里面内容如下:
注意:如果文件里的中文内容出现乱码,可以参考我之前写的文件来解决:
SpringBoot - 配置文件application.properties使用
user.name.size=用户名长度介于5到10个字符之间
user.address.notnull=用户地址不能为空
user.age.size=年龄输入不正确
user.email.notnull=邮箱不能为空
user.email.pattern=邮箱格式不正确
3,数据校验配置
接下来创建一个 User 类,并配置相关的数据校验:
@NoArgsConstructor
@Setter
@Getter
public class User {
// @Size 注解表示一个字符串的长度或者一个集合的大小,必须在某一个范围中
@Size(min = 5, max = 10, message = "{user.name.size}")
private String name;
// @NotEmpty 注解表示该字段不能为空
@NotEmpty(message = "{user.address.notnull}")
private String address;
// @DecimalMin 注解表示对应属性值的下限
@DecimalMin(value = "1", message = "{user.age.size}")
// @DecimalMax 注解表示对应属性值的上限
@DecimalMax(value = "200", message = "{user.age.size}")
private Integer age;
// @Email 注解表示对应属性格式是一个 Email
@Email(message = "{user.email.pattern}")
// @NotNull 注解表示该字段不能为null
@NotNull(message = "{user.email.notnull}")
private String email;
}