当前位置: 首页 > news >正文

springboot项目使用validated参数校验框架

目录

前言

一、validated是什么?

二、使用步骤

1.引入maven依赖

2.使用实现

总结



前言

        当谈到Spring的参数校验功能时,@Validated注解无疑是一个重要的利器。它为我们提供了一种简单而又强大的方式来验证请求参数的合法性,保证了系统的稳定性和安全性。本文将介绍Spring Validated的基本用法以及在实际项目中的应用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、validated是什么?

   

  1. @Validated注解的作用和使用方法

    • 可以用于Controller类或方法上,开启对请求参数的校验功能。
    • 通过在方法参数上使用其他校验注解(如@NotNull、@NotBlank、@Min、@Max等),对请求参数进行校验和验证,确保参数的合法性。
    • 可配合使用Spring Validation API或其他支持JSR-303规范的验证框架(如Hibernate Validator),发挥@Validated注解的最大效用。
  2. @Validated注解的实际应用示例

    • 编写一个用户注册接口,结合@Pattern注解对用户名和密码进行格式校验。
    • 处理校验失败时的异常情况,并返回友好的错误信息给接口调用方。
  3. @Validated注解的注意事项和最佳实践

    • 讨论@Validated注解在复杂校验场景下的使用技巧。
    • 如何在全局配置文件中声明验证器或配置验证规则,使得@Validated注解更加灵活地适应各种项目需求。

二、使用步骤

1.引入maven依赖

代码如下(示例):

<!--        Validation合法性校验(参数)  参数校验框架的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

2.使用实现

代码如下 参数长度在  5 - 16位(示例):

/*** @Description: 用户相关的控制层* @Author: windStop* @Date: 2024/5/26 16:18*/
@RestController
@RequestMapping("/user")
@Validated  //启用参数校验功能
public class UserController {@Autowiredprivate UserService userService;/*** 用于注册新用户  在注册用户的时候需要先判断用户名是否存在,因为用户名不可以重复* 这里我不打算使用给用户名添加唯一字段* @param username 用户名* @param password 密码* @return 是否注册成功*/@PostMapping("/register")public Result register(@Pattern(regexp = "^\\S{5,16}") String username, @Pattern(regexp = "^\\S{5,16}")String password){//1.判断用户是否存在if (userService.findByUsername(username)){return Result.error("用户名已存在无法注册");}//2.不存在进行注册boolean flag = userService.register(username,password);return Result.success(flag);}}

总结

        通过本文的学习,读者将深入了解Spring Validated的使用方法和原理,掌握在实际项目中如何有效地利用@Validated注解进行参数校验。希望本文能够为您在Spring项目开发中遇到的参数校验问题提供一些启发和帮助。如有需要进一步了解或其他问题,请随时告诉我。

相关文章:

springboot项目使用validated参数校验框架

目录 前言 一、validated是什么&#xff1f; 二、使用步骤 1.引入maven依赖 2.使用实现 总结 前言 当谈到Spring的参数校验功能时&#xff0c;Validated注解无疑是一个重要的利器。它为我们提供了一种简单而又强大的方式来验证请求参数的合法性&#xff0c;保证了系统的稳…...

Azure Chatgpt demo部署——本地CentOS Docker

参见上一篇 http://t.csdnimg.cn/JcyfM 由于本地部署环境&#xff0c;与之前系统、网络、配置等环境不同&#xff0c;可能会遇见一些新的问题。 取2023年8月27日代码 git checkout -b a02796b063381c10ca9ca8189590b289a4d09129 由于本地情况的网络等环境不太一样&#xff0c…...

MybatisPlus中自定义sql

背景 在开发过程中&#xff0c;可能会出现除了where条件&#xff0c;其它sql比较复杂&#xff0c;这时候就需要用到自定义sql了。 问题 如&#xff1a;用户状态为正常的数据年龄加一&#xff08;所有用户年龄加一&#xff09; 数据库中sql&#xff1a; UPDATE USER SET…...

HCIA--DHCP: 动态主机配置协议 (复习)

DHCP: 动态主机配置协议 -- 同一分发管理ip地址 基于UDP 67/68端口工作 网络中存在DHCP的服务器为需要自动生成ip地址的设备分配ip地址&#xff1b;--C/S模型 成为DHCP服务器的条件&#xff1a; 该设备存在接口或网卡连接到所要分发ip地址的广播域内该接口或网卡必须已经配置…...

MySQL select for update 加锁

背景 当多人操作同一个客户下账号的时候&#xff0c;希望顺序执行&#xff0c;某个时刻只有一个人在操作&#xff1b;当然可以通过引入redis这种中间件实现&#xff0c;但考虑到并发不会很多&#xff0c;所以不想再引入别的中间件。 表结构 create table jiankunking_accoun…...

MongoDB CRUD操作:投影Project详解

MongoDB CRUD操作&#xff1a;投影Project详解 文章目录 MongoDB CRUD操作&#xff1a;投影Project详解返回文档的全部字段返回指定的字段和_id字段不输出_id字段指定排除的字段返回内嵌文档中的指定字段禁止内嵌文档中的特定字段数组中内嵌文档的投影聚合表达式的投影字段 默认…...

redis 集群 底层原理以及实操

前言 上篇我们讲解了哨兵集群是怎么回事 也说了对应的leader选举raft算法 也说了对应的slave节点是怎么被leader提拔的 主要是比较优先级 比较同步偏移量 比较runid等等 今天我们再说说,其实哨兵也有很多缺点 虽然在master挂了之后能很快帮我们选举出新的master 但是对于单个ma…...

MVC架构中的servlet层重定向404小坑

servlet层中的UserLoginServlet.java package com.mhys.servlet; /*** ClassName: ${NAME}* Description:** Author 数开_11* Create 2024-05-29 20:32* Version 1.0*/import com.mhys.pojo.User; import com.mhys.service.UserService; import com.mhys.service.impl.UserSer…...

Java-RabbitMQ

RabbitMQ使用场景 1、跨系统异步通信 2、多应用之间解耦 3、应用内流程同步变异步 4、整体架构即采用消息驱动 5、应用内部解耦 RabbitMQ内部角色 角色简介生产者消息创建者消费者消息接收者代理RabbitMQ本身&#xff0c;用于存储转发消息&#xff0c;快递功能 RabbitMQ有哪…...

ABAP 在增强中COMMIT

前言 呃&#xff0c;又是很磨人的需求&#xff0c;正常情况下是不允许在增强中COMMIT的&#xff0c;会影响源程序本身的逻辑&#xff0c;但是这个需求就得这么干… 就是在交货单增强里面要再调用一次交货单BAPI&#xff0c;通过SO的交货单自动创建STO的交货单&#xff0c;如果…...

【UML用户指南】-02-UML的14种图

1、结构图 1、类图&#xff08;class diagram&#xff09; 展现了一组类、接口、协作和它们之间的关系。 在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。 包含主动类的类图给出系统的静态进程视图。构件图是类图的变体。 2、对象图&a…...

Linux驱动开发笔记(二) 基于字符设备驱动的I/O操作

文章目录 前言一、设备驱动的作用与本质1. 驱动的作用2. 有无操作系统的区别 二、内存管理单元MMU三、相关函数1. ioremap( )2. iounmap( )3. class_create( )4. class_destroy( ) 四、GPIO的基本知识1. GPIO的寄存器进行读写操作流程2. 引脚复用2. 定义GPIO寄存器物理地址 五、…...

三品软件:打造高效安全的图文档管理体系

在数字化转型的浪潮中&#xff0c;工程设计单位和企业设计部门面临着电子图文档管理的巨大挑战。随着电子图纸和文档数量的激增&#xff0c;如何有效组织、管理和共享这些资源&#xff0c;成为提升工作效率和保障信息安全的关键。本文将探讨当前图文档管理面临的问题&#xff0…...

N1 one-hot编码

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊# 前言 前言 onehot编码在机器学习比较常见&#xff0c;例如推荐系统中类别变量的处理等。 onehot 编码简介 One-hot编码&#xff08;one-hot encoding&…...

数据库基础+增删查改初阶

数据库基础增删查改初阶 一。数据库操作 1.概念&#xff1a; 一个mysql服务器上有很多的表&#xff0c;把有关系的表放在一起就构成了一个数据集合&#xff0c;此时称为“数据库”&#xff0c;一个mysql1服务器上可以有多个这样的数据库 2.创建数据库&#xff1a; create …...

大模型日报2024-05-29

大模型日报 2024-05-29 大模型资讯 大型语言模型在金融预测中将超越人类分析师 摘要: 新研究表明&#xff0c;大型语言模型如ChatGPT在金融预测方面表现优于人类专家&#xff0c;为交易策略提供了宝贵的见解。这意味着未来这些模型将在金融领域发挥更重要的作用&#xff0c;提升…...

如何摆脱打工人任人宰割的命运

那就是为自己打工。 要有自己的思想&#xff0c;自己的目标&#xff0c;有自己的方向&#xff0c;坚决的非常自信的去执行它。 这样才是活出属于自己的人生&#xff0c;活出自己的精彩。 当然&#xff0c;这是在你已经比周围人优秀的情况下&#xff0c;至少是你觉得你比他们…...

“图片在哪”、“我是temunx”、“变成思维导图用xmindparser”gpt给出文本变字典

需求 我的意思是什么 分类清单“图片在哪 我是temunx变成思维导图 用xmindparser用 shell 画思维导图 x mind&#xff0c;可以 /storage/emulated/0/字体/黑体.ttf 保存/storage/emulated/0/print/图片/input图纸/完整代码 给个文本内容”任务清单 调整语言顺序文不对题的…...

【LeetCode】【5】最长回文子串

文章目录 [toc]题目描述样例输入输出与解释样例1样例2 提示Python实现动态规划 个人主页&#xff1a;丷从心 系列专栏&#xff1a;LeetCode 刷题指南&#xff1a;LeetCode刷题指南 题目描述 给一个字符串s&#xff0c;找到s中最长的回文子串 样例输入输出与解释 样例1 输入…...

主播们直播时的美颜是如何实现的?集成第三方美颜SDK方案详解

很多人问小编&#xff0c;主播们直播时的美颜效果是如何实现的呢&#xff1f;接下来&#xff0c;我将为您详细介绍美颜功能的实现原理。 一、美颜功能的基本原理 通过对图像进行实时处理&#xff0c;达到美化人脸的效果。其主要技术包括&#xff1a; 1.人脸检测与关键点定位 …...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道

文/法律实务观察组 在债务重组领域&#xff0c;专业机构的核心价值不仅在于减轻债务数字&#xff0c;更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明&#xff0c;合法债务优化需同步实现三重平衡&#xff1a; 法律刚性&#xff08;债…...

WEB3全栈开发——面试专业技能点P7前端与链上集成

一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染&#xff08;SSR&#xff09;与静态网站生成&#xff08;SSG&#xff09; 框架&#xff0c;由 Vercel 开发。它简化了构建生产级 React 应用的过程&#xff0c;并内置了很多特性&#xff1a; ✅ 文件系…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...