spring-boot-validator参数校验系列(2)--------分组校验

简介: 根据业务类型实现分组校验

前言

目录

spring-boot-validator参数校验系列(1)--------基本参数校验

spring-boot-validator参数校验系列(2)--------分组校验

spring-boot-validator参数校验系列(3)--------自定义校验注解

spring-boot-validator参数校验系列(4)--------自定义参数校验异常

一、为什么要分组校验?

因为对同一个实体有不同的业务操作,比如添加用户时,用户名不可为空,更新用户信息时,id不可为空。此时采取统一交验,则会出现添加时,必须填写id。

二、如何实现?

(1)首先完成基本校验spring-boot-validator参数校验系列(1)--------基本参数校验


     (2)创建分组校验标记接口

importjavax.validation.groups.Default;
/*** @Description : 校验注解标记接口,更新类型。注意:* 若不实现Default接口,那么默认的没有添加分组的注解则不会进行校验也就是如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效*/publicinterfaceUpdateextendsDefault {
}

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

如果不继承Default默认接口,那么下面MyPerson中的name上的@Size则会失效!

重要的事情说三遍!!!


 (3)校验注解中groups属性添加分组标记接口

@Data//lombok注解publicclassMyPerson {
@NotBlank(message="id不可为空!",groups= {Update.class})
privateStringid;
@Size(max=8,min=1, message="姓名字符超出范围!")
privateStringname;
}

(3)Controller中的@Validated 注解加入标记接口(首尾呼应写作方法)。

这里以更新为例,因为name没有进行Update.class分组,所以不填(即:null)不会校验

PostMan访问

image.png

后台输出结构

image.png

目录
相关文章
|
15天前
|
Java 数据库连接 Spring
Spring Boot命令行启动添加参数
Spring Boot命令行启动添加参数
|
1月前
|
XML Java 数据库连接
spring boot 参数的过滤注解与实战
在Spring Boot应用中,对于入参的过滤,通常会涉及到对Web层的数据验证和处理。Spring Boot借助Spring框架提供了强大的验证框架支持,主要基于JSR-303/JSR-380(Bean Validation API)规范,以及Spring自身的@Valid或@Validated注解来实现请求参数的验证。以下是一些常见的使用案例来展示如何对参数进行过滤和验证。
29 1
|
4月前
|
前端开发 Java 数据库连接
9:参数校验-Java Spring
9:参数校验-Java Spring
30 0
|
3月前
|
Java 数据安全/隐私保护
SpringBoot - 优雅的实现【参数分组校验】高级进阶
SpringBoot - 优雅的实现【参数分组校验】高级进阶
40 0
|
6月前
|
XML Java 程序员
Spring参数注入的几种方法
Spring参数注入的几种方法
|
4天前
|
JSON Java 数据格式
Spring Boot实现各种参数校验
这些是Spring Boot中实现参数校验的一些常见方法,你可以根据项目需求选择适合的方式来进行参数校验。
11 0
|
1月前
|
前端开发 Java Spring
Java 新手如何使用Spring MVC 中的查询字符串和查询参数
Java 新手如何使用Spring MVC 中的查询字符串和查询参数
|
5月前
|
Java 测试技术 数据安全/隐私保护
Spring Boot | 一种优雅的参数校验方案(个人总结)
一种优雅的参数校验方案(个人总结)
298 1
Spring Boot | 一种优雅的参数校验方案(个人总结)
|
1月前
|
存储 NoSQL 前端开发
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
【SpringBoot】Redis集中管理Session和自定义用户参数解决登录状态及校验问题
|
1月前
|
前端开发 Java Maven
spring boot3参数校验基本用法
spring boot3参数校验基本用法
42 2