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

embedded/2024/9/24 23:25:12/

目录

前言

一、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项目开发中遇到的参数校验问题提供一些启发和帮助。如有需要进一步了解或其他问题,请随时告诉我。


http://www.ppmy.cn/embedded/44112.html

相关文章

连接池笔记\JDBC的API\ACID属性\数据并发问题

1-池化思想 字符串常量池、数据库连接池、线程池 频繁使用的东西&#xff0c;不要每次都去创建 没连接池之前&#xff1a; &#xff08;1&#xff09;获取连接 &#xff08;2&#xff09;进行sql操作 &#xff08;3&#xff09;断开连接 存在问题 &#xff08;1&#xff09;每次…

NoSQL数据库技术与应用 教学设计

《NoSQL数据库技术与应用》 教学设计 课程名称&#xff1a;NoSQL数据库技术与应用 授课年级&#xff1a; 20xx年级 授课学期&#xff1a; 20xx学年第一学期 教师姓名&#xff1a; 某某老师 2020年5月6日 课题 名称 第1章 初识NoSQL 计划 学时 3 课时 内容 分析 随着云计算、…

MATLAB分类与判别模型算法: 快速近邻法(FastNN)分类程序【含Matlab源码 MX_005期】

算法思路介绍&#xff1a; 1. 数据准备阶段&#xff1a; 生成一个合成数据集 X&#xff0c;其中包含三个簇&#xff0c;每个簇分布在不同的区域。 定义聚类层数 L 和每个层次的子集数量 l。 2. 聚类阶段&#xff1a; 使用K均值聚类算法将初始数据集 X 分成 l 个簇。…

ffmpeg怎么将vtt文件添加到视频中

FFmpeg 是一个非常强大的多媒体框架&#xff0c;可以用来处理音频、视频以及字幕文件。要将 WebVTT&#xff08;.vtt&#xff09;字幕文件添加到视频文件中&#xff0c;你可以使用 ffmpeg 的 subtitles 过滤器。以下是基本的命令格式&#xff1a; ffmpeg -i input_video.mp4 -…

车载电子电器架构 —— 智能座舱标准化意义

车载电子电器架构 —— 智能座舱标准化意义 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消…

AI大模型:大数据+大算力+强算法

前言&#xff1a;好久不见&#xff0c;甚是想念&#xff0c;我是辣条&#xff0c;我又回来啦&#xff0c;兄弟们&#xff0c;一别两年&#xff0c;还有多少老哥们在呢&#xff1f; 目录 一年半没更文我干啥去了&#xff1f; AI大模型火了 人工智能 大模型的理解 为什么学习…

透视AI技术:探索折射技术在去衣应用中的奥秘

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图像处理和计算机视觉领域的应用日益广泛。其中&#xff0c;AI去衣技术作为一种颇具争议的应用&#xff0c;引发了广泛的讨论和关注。本文将深入探讨折射技术在AI去衣中的应用及其背后的原理。 一、AI去衣技术简介…

探索Solana链上DApp开发:高性能区块链生态的新机遇

Solana 是一个新兴的区块链平台&#xff0c;致力于为 DApp&#xff08;去中心化应用程序&#xff09;开发者提供高性能、低成本的解决方案。Solana 的独特之处在于其创新性的共识机制和高吞吐量的网络&#xff0c;使得开发者可以构建高度可扩展的 DApp&#xff0c;并为用户提供…