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

news/2024/2/28 0:11:56

接口参数校验教程

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

@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…

OGRE渲染引擎

1.OGRE简介 OGRE&#xff08;Object -Oriented Grapjics Rendering Engine&#xff09;,即面向对象的3D引擎&#xff0c;诞生于1999年。它是为了让开发人员更加容易、更直接地利用硬件加速的3D图形系统开发应用。这类库隐藏了底层系统库Direct3D和OpenGL的所有细节&#xff0c…

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

2021SCSDUSC 一、简述 上一篇博客将开始渲染的整个流程介绍完毕&#xff0c;这篇博客将对后续渲染服务进行进一步的分析&#xff08;注&#xff1a;仍然仅关注于2D渲染部分&#xff09; 二、分析 我们接下来分析的部分是结束渲染的操作&#xff0c;也就是Render2D中的End操作&…

HTML5游戏引擎(一)-egret引擎简介——一个开源免费的游戏框架

HTML5游戏引擎&#xff08;一&#xff09;-egret引擎简介——一个开源免费的游戏框架 为什么 游戏行业发展迅速&#xff0c; 给程序员提供了大量就业 (斗鱼&#xff0c; 微派&#xff0c; 腾讯&#xff0c; 蓝月&#xff0c; 网易 等等)游戏开发薪资普遍比较高 (王者荣耀 &am…

什么是 游戏引擎 ?各个主流引擎的区别

在之前的元宇宙中有提及到游戏主播这个行业&#xff0c;那对应的就会有游戏开发者&#xff0c;对于开发最快捷的方式当然是使用游戏引擎进行开发了呀&#xff0c;那接下来我们就来说说这方面的内容吧 &#xff01; 本篇文章主要讲解&#xff0c;游戏开发中常用的5个游戏引擎及其…

Prompt不等于编程,“提示词工程师”淘汰程序员也是伪命题

Original 李建忠 李建忠研思 最近ChatGPT及基于大语言模型&#xff08;Large Language Model&#xff0c;以下简写为LLM&#xff09;的Github Copilot等工具出来之后&#xff0c;在软件开发领域也带来了非常大的震撼。著名的观点有Fixie创始人、前Google工程总监Matt Welsh在AC…

2.3ORBSLAM3之相机模型与畸变模型

1.简介 主要内容&#xff1a; 1. 对SLAM中常见的相机模型进行介绍&#xff0c;包括针孔相机模型和鱼眼相机模型 2. 对每种相机模型的畸变模型进行介绍 3. 对VSLAM中常见的几种去畸变方法进行介绍 4. 对常见的几种相机标定方法进行总结对于VSLAM来说关于相机投影模型和畸变模型…

深入理解Android Jetpack Compose的Box

Box是一个提供了一种快速、简便的方式来对其子元素进行层叠布局的布局组件。 一、什么是Box? 二、如何使用Box? 三、Box中的contentAlignment属性 四、使用Modifier在Box内进行更复杂的布局 一、什么是Box? 在Compose中&#xff0c;Box是一个简单的布局组件&#xff0c…

客户服务:提供有效客户客服的几种方法

对跨境卖家来说&#xff0c;服务的内容和质量在很大程度上决定了能走多远&#xff0c;能飞多高。卖家应注意整个交易闭环的各个环节。产品本身的价值往往由市场控制&#xff0c;但服务溢价可以由卖家自己控制。 优质的服务会为我们创造回头客&#xff0c;带来具有终身价值的客…

“智慧金融”精细化客户服务+营销获客

在新兴金融产品与智能服务创新科技手段的不断推动下&#xff0c;我国金融行业的发展已经实现由“金融信息化”向“智慧金融”的阶级跨越。金融行业在客户服务、业务流程、业务开拓等方面已得到全方位的“数智化”提升&#xff0c;实现了“AI金融”客户服务、风控、营销获客的智…

Live800:客户服务的三重境界,你做到了吗?

毋庸置疑&#xff0c;赢得客户的青睐是维系自身经济长青的基础。想要客户满意&#xff0c;得到最佳的客户评价&#xff0c;企业就需要为客户提供超出他们期望的服务。 有人将客户服务分为三重境界:第一重境界&#xff0c;把分内的服务做精&#xff1b;第二重境界&#xff0c;把…

改善内部客户服务的 3 个技巧

在当今世界&#xff0c;许多公司都专注于改善客户关系管理&#xff0c;公司管理层面临的挑战是他们不仅拥有外部客户&#xff0c;员工也是有痛点和需求的内部客户。正如糟糕的客户服务会导致客户流失一样&#xff0c;糟糕的内部客户服务会增加员工流动率。在当今瞬息万变的就业…

Live800:大数据将如何改变客户服务?

“数据&#xff0c;已经渗透到当今每一个行业和业务职能领域&#xff0c;成为重要的生产因素。人们对于海量数据的挖掘和运用&#xff0c;预示着新一波生产率增长和消费者盈余浪潮的到来”。——麦肯锡 近几年来“大数据”一词的热度有目共睹&#xff0c;各行业根据自身特点和…
最新文章