@Valid接口参数校验怎么做,详细教程

news/2025/1/20 6:54:25/

接口参数校验教程

一、在字段上可以使用这个注解来设置校验

@Null:被注释的元素必须为null
@NotNull:被注释的元素不能为null
@AssertTrue:该字段只能为true
@AssertFalse:该字段的值只能为false
@Min("value","message"):被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max("value","message"):被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin("value","message"):被注释的元素必须是一个数字,验证小数的最小值
@DecimalMax("value","message"):被注释的元素必须是一个数字,验证小数的最大值
@Size(max,min):查该字段的size是否在min和max之间,可以是字符串、数组、集合、Map等
@Past:被注释的元素必须是一个过去的日期
@Future:被注释的元素必须是一个将来的日期
@Pattern(regexp = “[abc]”):被注释的元素必须符合指定的正则表达式。
@Email:被注释的元素必须是电子邮件地址
@Length(max=5,min=1,message=“长度在1~5”):检查所属的字段的长度是否在min和max之间,只能用于字符串
@NotEmpty:被注释的字符串必须非空
@Range:被注释的元素必须在合适的范围内
@NotBlank:不能为空,检查时会将空格忽略
@NotEmpty:不能为空,这里的空是指空字符串

 二、然后在接口上标注@Valid

三、内部成员变量类 

如果只这样设置了,那主类下的成员变量类的字段上即便加上@Max注解也不会被校验,还需要给成员变量类加上@Valid注解

四、加入MethodArgumentNotValidException到统一异常检测类

@RestControllerAdvice(basePackages = {"com.quickstart.myself"})
@Slf4j
public class BusinessExceptionHandle {@ExceptionHandler(MethodArgumentNotValidException.class)public <T> BusinessResponseEntity<T> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {log.error("##########MethodArgumentNotValidException");String msg = "未知的参数异常";BindingResult bindingResult = e.getBindingResult();if (bindingResult.hasErrors()) {msg = bindingResult.getAllErrors().stream().map(error -> error.getDefaultMessage()).collect(Collectors.joining());}log.error(msg);return BusinessResponseEntity.error(msg);}
}

 演示:

 扩展(分组校验)使用 @Validated


http://www.ppmy.cn/news/569981.html

相关文章

游戏引擎Flax Engine分析(六)渲染

2021SCSDUSC 一、简述 这篇博客继续上一篇未分析完的部分继续分析&#xff0c;分析2D渲染服务。 二、分析 我们先看一下我们曾在Render2D.h这个头文件中介绍过的开始渲染函数&#xff0c;其有多个重载&#xff1a; API_FUNCTION() static void Begin(GPUContext* context, GP…

游戏引擎概述-Part1

一、简述自己的学习心路历程 自从业UNITY以来已经有4个月多了&#xff0c;回想起来自己从工作以来就很少写博客了&#xff0c;也算督促一下自己&#xff0c;回想自己从最早的Unity开始&#xff0c;入手C#和编辑器、Unity开发界面&#xff0c;再到自己学一些Unity的小项目…

Hazel游戏引擎

Hazel游戏引擎 Cherno开源项目gitee版本github到gitee(码云) Cherno开源项目gitee版本 看了b站的游戏引擎开发教学&#xff0c;内附的项目地址是github的&#xff0c;国内访问实在不便&#xff0c;遇到了诸多问题&#xff1a;所以将他的项目从github迁移到了gitee上。2021/10/…

Chrome V8引擎介绍

0.v8引擎出现的原因 这里先说一下什么是编译型语言和解释性语言&#xff1a; 编译型语言&#xff1a; 在程序执行之前必须进行专门的编译过程&#xff0c;有如下特点&#xff1a; 只须编译一次就可以把源代码编译成机器语言&#xff0c;后面的执行无须重新编译&#xff0c;直…

十大最牛游戏引擎

游戏引擎就像是游戏的发动机&#xff0c;好的游戏引擎能够让游戏开发事半功倍。而对玩家们来说&#xff0c;游戏引擎能够带来最直观的感受就是游戏的画面和细节表现。从光影声效到场景细节&#xff0c;从画面触感到各种细腻体验&#xff0c;再到人物表情的捕捉&#xff0c;花草…

HTML5开源RPG游戏引擎lufylegendRPG 0.1发布

一&#xff0c;小小开篇 首先不得不先介绍一下这个引擎&#xff1a; lufylegendRPG是lufylegend的拓展引擎&#xff0c;使用它时&#xff0c;需要引入lufylegend。同时您也需要了解lufylegend语法&#xff0c;这样才能更合理地运用lufylegendRPG。该引擎封装了lufylegend的一些…

游戏引擎简介

目录 什么是游戏引擎游戏引擎模块划分常见的游戏引擎碎碎念 什么是游戏引擎 游戏引擎是由多个子系统共同构成的复杂系统&#xff0c;它几乎涵盖了游戏开发过程中的所有重要环节。 以上来自百度百科&#xff0c;听起来很牛&#xff0c;上次听到这么牛的描述还是上次… 游戏引…

游戏引擎概述

定义&#xff1a; 游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具&#xff0c;其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台&a…