1. 概述
本文介绍了在spring boot框架下,使用validation数据校验注解,针对不同请求链接的前端传参数据,进行分层视图对象的校验,并通过配置全局异常处理器捕获传参校验失败异常,自动返回校验出错的异常数据。
2. 依赖包导入
导入校验注解,本文使用的是spring boot框架下的validation校验包,首先将如下代码配置到pom.xml中并更新maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
3. 校验规则注解
在java Bean中针对需要校验的属性字段编写对应的校验注解
3.1 视图对象分层的意义
对同一个数据库中同一张表进行不同操作,前端传入的入参校验法则是不一样的,甚至相互之间还有冲突,因此针对同一个javaBean使用同一套入参数据校验是不可行的。
举个例子,比如对如下java Bean数据进行新增操作和更新操作,其ID字段的校验规则就完全冲突,新增时,要求前端不传入,因为这个字段是数据库自增字段。而在更新操作时,ID字段是必传字段,因为是通过这个字段定位到具体要修改的那条数据。因此需要根据不同的入参需求建立分层视图对象,进行分别校验。
@Data
public class Employee {
private Long id;
private String name;
private Integer age;
private String email;
private String gender;
private String address;
private BigDecimal salary;
}
3.2 分层对象的设计模式
设计模式:单一职责 (新建和修改用到的校验规则不一致)
JavaBean也要分层,各种xxO:
Pojo:普通