前言
目录
spring-boot-validator参数校验系列(1)--------基本参数校验。
spring-boot-validator参数校验系列(2)--------分组校验
spring-boot-validator参数校验系列(3)--------自定义校验注解
spring-boot-validator参数校验系列(4)--------自定义参数校验异常
一、为什么要进行参数校验?
1.1 与业务代码分离,拒绝 if(Objects.isNull()){ //相关提示... }! 也是Controller分层的体现!
1.2也是代码复用,比如常见的字符串非空判断。
二、使用步骤
2.1 pom引入依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!--引入SpringBoot依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.4</version> </parent> <groupId>com.tab343</groupId> <artifactId>mySpringboot</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <!--spring-boot-starter-parent的父级spring-boot-dependencies定义了validation的依赖,所以这里不必指定版本--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <!-- 因为示例采用web方式,所以加入web依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
2.2校验操作
(1)普通类型(比如int,Integer)及字符串类型校验
此种情况可以直接在方法参数上进行加校验注解判断
"/validation") (//校验注解,标注在类上表示该类所有方法都进行校验,如果只标注在方法,表示只根据校验注解检查此方法上的参数 public class MyValidationController { "/methodParam") ( public void testMethodParam( (min = 5, max = 10, message = "字符长度超出了范围!") String code){ log.info("code is {}",code); } }
使用PostMan访问
后台输出结果
(2)引用类型(即对象)校验
例如根据id更新用户名时,id和用户名不可为空!
public class MyPerson { message = "id不可为空!") ( private String id; max = 255,min = 1, message = "姓名不可为空!") ( private String name; }
PostMan访问
后台输出结果