SpringBoot学习笔记(三)——参数校验器Validator

IDEA依赖死活下不来?别急着重装,先试试这3个排查思路(附阿里云源配置) 本文详细解析了IDEA中Maven依赖下载失败的常见原因及解决方案,重点介绍了Unresolved dependency错误的排查思路,包括错误信息解码、分层排查和阿里云镜像配置。通过系统性诊断和实用技巧,帮助开发者高效解决依赖问题,提升开发效率。 阅读详情

接着之前的学习,本章主要记录SpringBoot整合Validator,实现参数校验。

1、添加依赖

<!--	参数校验器-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-validation</artifactId>
</dependency>

报错 Unresolved dependency

reload project后,出现如下报错

Unresolved dependency: 'org.springframework.boot:spring-boot-starter-validation:jar:2.6.6'

解决办法:

1、打开maven工具栏,发现如下错误提示

jar包org.springframework.boot:spring-boot-starter:2.6.6重复了

2、打开project structure -> project Settings -> Libraries,找到org.springframework.boot:spring-boot-starter:2.6.6并删除

3、问题解决,成功启动

2、用户实体类添加校验

@Length(max = 8, message = "用户名不能超过8个字符")
@Pattern(regexp = "^[A-Za-z]+$", message = "用户名只能包含字母")
private String username;

@Size(max=8, min = 6)
private String password;

3、在controller内使用@Validated注解使参数校验功能生效

@PostMapping("/add")
@ResponseBody
public Integer addUser(@Validated User user) {
    return userserviceImpl.addUser(user);
}

4、测试

测试结果如下图:

后台报错信息如下:

2022-04-22 20:03:19.819  WARN 8016 --- [nio-8081-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 2 errors<EOL>Field error in object 'user' on field 'username': rejected value [zhangsan03]; codes [Pattern.user.username,Pattern.username,Pattern.java.lang.String,Pattern]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.username,username]; arguments []; default message [username],[Ljavax.validation.constraints.Pattern$Flag;@1742b2d2,^[A-Za-z]+$]; default message [用户名只能包含字母]<EOL>Field error in object 'user' on field 'username': rejected value [zhangsan03]; codes [Length.user.username,Length.username,Length.java.lang.String,Length]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [user.username,username]; arguments []; default message [username],8,0]; default message [用户名不能超过8个字符]]

 修改用户名,成功添加用户 ^^

 

SpringBoot的参数校验器-Validator SpringBoot的参数校验器-Validator 1、分析 在日常的开发中,服务端对象的校验是非常重要的一个环节, 比如注册的时候:校验用户名,密码,身份证,邮箱等信息是否为空,以及格式是否正确, 但是这种在日常的开发中进行校验太繁琐了,代码繁琐而且很多。 Validator框架应运而生,它的出现就是为了减少开发人员在开发时的代码,提升开发效率。它有专门用来做接口的参数校验,比如:密码长度、是否为空等。 Spring的validator校验框架遵守的是JSR-303的验证规范(参数校验规范),JSP全称 阅读详情

相关推荐

未解析的依赖项: ‘org.springframework.boot:spring-boot-starter-test:jar:unknown‘(解决办法)

未解析的依赖项: 'org.springframework.boot:spring-boot-starter-test:jar:unknown'因为这几个爆红的这几个依赖都没有添加版本号,所以就没有解析出来,给这些爆红的依赖一个个都加上版本号就可以解决了。依赖正在下载中,耐心等待即可,其他依赖报这个无法解析的错误,也是这样依次解决。完成后点击右上角的maven刷新进行刷新导入依赖。的问题,有几个依赖项没有导入进行,所以爆红了。原先没有导入版本号之前。

快乐学习 1万+

[SpringMVC]unresolved dependency rg.springframework.boot:spring-boot-starter-web:1.2.3.RELEASE

学习SpringMVC的例子(https://spring.io/guides/gs/rest-service/#initial)的时候,利用eclipse直接导入示例代码:rest service,发现工程找不到依赖包 org.springframework.boot:spring-boot-starter-web:1.2.3.RELEASE 对比之前成功执行的例子,发现依赖包都是放在了

记录所学所思 1万+

Tomcat 启用RewriteValve 失败,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,但经过精心筛选和整理,保证每一条解决方案都经过实战验证,真实可靠。

**My Coding Family** 1977

未解析的依赖项: ‘org.springframework.boot:spring-boot-starter-test:jar:unknown‘解决

把这个parent的版本换一下,我的换成2.7.13的就不会报错了,反正多试几个。可以去pom.xml里。

qq_61128429的博客 1万+

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 277

SVPWM原理与MCU/FPGA实现:从数学推导到工程实战

空间矢量调制(SVPWM)是实现高性能电机驱动控制的核心算法之一,其通过六个基本电压矢量与零矢量的伏秒平衡,在一个PWM周期内合成任意方向的旋转电压圆,相比传统SPWM可提升约15%的直流电压利用率。该技术不仅涉及扇区判断、作用时间计算、过调制限幅等数学原理,还在MCU与FPGA两种硬件平台上有不同的工程实现路径,包括中心对齐PWM配置、死区插入、定点数流水线设计等。在电动工具、无人机、机器人及车载执行器等电池供电场景中,SVPWM直接决定续航与扭矩表现。本文从数学原理出发,详细拆解MCU和FPGA实现细节

weixin_34265814的博客 301

【14】SpringBoot的参数校验器-Validator

在spring框架框架的开发中,只需要两个步骤1在需要校验的bean(entity)中的属性上增加对应注解2在springmvc的方法参数中的entity中加==@Validated==的注解即可。3使用全局统一异常处理捕获的验证失败的提示信心Stringmessage()default"手机格式不正确!";Class...

disguiseR 1756

从波士顿动力SpotMini拆解看四足机器人机械设计:关节布局与电机选型的5个关键决策点

本文深入解析波士顿动力SpotMini四足机器人的机械设计,聚焦关节布局与电机选型的5个关键决策点。通过拆解髋关节偏移距、膝关节传动链、电机热管理等核心设计,揭示商业级四足机器人的工程智慧,为工业巡检、物流机器人等应用提供实用参考。

postgres8guard的博客 892

SpringBoot的参数校验器 - Validator

使用框架自带的Validated验证器,能很大程度的简化开发,提高开发效率。

qq_45515182的博客 4861

整理并记录几种运算放大器

运算放大器是一种十分常见的电子元器件,最近我在学习运放,以前在学校没有好好的学习,今天在B站看了唐老师讲运算放大器-唐老师讲电赛系列视频教程,记录下所学的,纯当是自己的笔记 学习运放,有两个重要的概念及重要的计算法宝,虚短vp=vn;和虚断ip=in 1反向比例运算电路 Rf可以大于、小于或等于R,起到放大、跟随、衰减输入的作用; 平衡电阻没有太高的精度要求,可加可不加; 有些运放内部集成了补偿电路,就不需要使用平衡电阻,加了反而增大误差,如OPA227 2.同向比例运放电路 .

qq_36823004的博客 6364

3D-IC测试挑战与Tessent解决方案解析

3D-IC技术通过硅通孔(TSV)实现芯片垂直堆叠,是延续摩尔定律的关键路径。该技术面临三大核心挑战:KGD标准严苛化要求测试覆盖率达99.5%以上,存储器测试需兼容LPDDR/HBM等多种协议,逻辑堆叠需解决TSV互连的电气特性和时序验证问题。Mentor Tessent平台采用混合测试架构,结合压缩扫描测试(ATPG)和内建自测试(BIST)技术,实现100x测试数据压缩比和99.97%的TSV缺陷检出率。这些创新方案在移动SoC和高性能计算芯片中已获验证,测试时间缩短73%,缺陷逃逸率降低77%。随着

weixin_30621711的博客 376

参数校验器和整合Mybatis&MybatisPlus

参数校验器和整合Mybatis&MybatisPlus 在日常的开发中,服务端对象的校验是非常重要的一个环节,比如:注册的时候:校验用户名,密码,身份证,邮箱等信息是否为空,以及格式是否正确,但是这种在日常的开发中进行校验太繁琐了,代码繁琐而且很多。Validator框架应运而生,它的出现就是为了解决开发人员在开发的时候减少代码的,提升开发效率。它专门用来做接口的参数校验,比如:密码长度、是否为空等等。 1.1SpringBoot的validator校验框架支持 ​ JSR303特征:JSR30..

qq_51205188的博客 4332

9.1 机器人动力学建模

目录9.1 机器人动力学建模一、机器人动力学的基本概念1. 什么是机器人动力学?2. 动力学方程二、机器人动力学建模方法1. 拉格朗日方法2. 牛顿-欧拉方法三、Simulink 中的机器人动力学建模1. 使用 Simscape Multibody 建模示例:构建一个两连杆机械臂的动力学模型。步骤:2. 使用 Robotics System Toolbox 建模示例:构建一个六自由度工业机器人的动力学模型。步骤:四、示例:两连杆机械臂的动力学建模目标:步骤:五、结果分析1. 动态响应2. 参数敏感性六、总结

xiaoheshang_123的博客 626

SpringBoot Hibernate Validator参数校验器

SpringBoot Hibernate Validator

Andy_Laux的博客 817

利用Dify构建文档内容的分析对比

本次主要做了一些workflow和Agent的应用实现,供大家参考。主要目的是为了进行两个内部报告文件的内容对比,特别是报告中的各类审批表、申请表、推荐表和流程对比,本地数据通过知识库方式分别加载到两个知识库中,编制工作流针对同一个问题进行知识库检索,之后将查询结果进行合并,再一起提交给LLM进行对比,最终将对比分析结果以markdown方式返回显示。主要包括如何构建知识库,如何设计workflow、如何将工作流发布为工具、如何设计提示词、如何在agent中引入前面发布的工具,最终通过agent实现与用户交

hhue2007的专栏 2522

零基础入门simulink仿真建模--通信领域的编码与纠错技术--基于Simulink的CRC校验算法仿真建模示例

CRC是一种广泛应用于数字网络和存储设备中的错误检测码。它的基本原理是利用除法运算来产生固定长度的校验位,这些校验位被附加到原始数据之后发送出去。接收端收到数据后,重新计算校验值并与接收到的校验值进行比较,如果两者相同,则认为数据没有错误;否则,表示数据可能已被损坏。发送端:随机比特生成模块 + CRC生成模块。信道:模拟数据传输过程中的潜在错误(可选)。接收端:CRC校验模块 + 错误指示模块。通过本指南,我们介绍了如何基于Simulink搭建一个简单的CRC校验系统模型,并进行了仿真分析。

amy_mhd的博客 727

关于校验器Validator的使用

前言 很多校验的东西,只在前端作校验是非常不可靠的。但是如果后台只在入口处作相关校验可能也会引发问题。 比如,前端调用A接口,使用springboot注解做校验,@NotBlank或者@Length等,A接口继续调用B方法做业务处理。 这时候有一个问题,如果某种情况下会出现其他接口直接调用B方法,那么A接口中做的参数校验无法覆盖,所以需要在B方法中做参数校验。 怎么做呢?这时候不能当做入口直接校验...

qq_36512655的博客 581

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

SpringBoot学习之旅(五)---Hibernate Validator(完美的参数校验)

文章目录前言示例 前言 科技的进步是靠懒人推动的,我觉得没有任何毛病,但是这里说的懒人不是说纯懒的那种!开发过程我想最痛苦的事情就是做那种不懂脑子的体力活,即苦逼,又无趣,那么这样的体力活,我们就得想办法偷懒去做,技能完成相关的工作,又能快速达到效果,他好我也好!这种体力活参数校验就是其中的一个; 示例 看下面一段注册的接口 /** * 注册 * * @para...

一行Java的博客 8821

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

SpringBoot参数校验进阶实战:从Validation到自定义校验器的深度解析

本文深入解析SpringBoot参数校验的进阶应用,从基础Validation框架到自定义校验器的实现。通过实战示例展示如何利用Hibernate Validator进行高效参数校验,并详细讲解自定义校验器的开发步骤,帮助开发者应对复杂业务场景,提升系统安全性和代码质量。

eee77的博客 856

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【Spring Boot】整合 Hibernate-Validator

ConstraintValidator是一个泛型接口,A表示之前我们自定义的注解,T表示被这个注解注释的字段的类型,这里指String(学历用String类型表示)创建一个类,实现ConstraintValidator接口,重写两个方法:initialize和isValid,分别表示初始化验证消息的方法和执行验证的方法。创建一个全局异常处理类,用于捕获抛出的异常,这里主要是通过Stream的API获取到注解中message属性的值。输入一个非法的值,比如硕士,观察结果。

Hi there 7987

springboot使用hibernate validator校验

一、参数校验 在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦: 验证代码繁琐,重复劳动 方法内代码显得冗长 每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码 hibernate validator (官方文档)提供了一套比较完善、便捷的验证实现方式。 spring-boot-starter-web包里面有...

java牛牛的博客 1034

Spring Boot项目中校验器的使用与注意事项

Spring Boot为开发者提供了强大而灵活的校验机制,通过使用校验器(Validator),我们能够在应用程序中方便地进行数据验证和错误处理。本文将深入介绍Spring Boot中校验器的使用方法,同时探讨在实际项目中需要注意的一些细节。

fudaihb的博客 1556

SpringBoot 如何进行参数校验,老鸟们都这么玩的!

大家好,我是飘渺。 前几天写了一篇《SpringBoot如何统一后端返回格式?老鸟们都是这样玩的!》阅读效果还不错,而且被很多号主都转载过,今天我们继续第二篇,来聊聊在SprinBoot中如何集成参数校验Validator,以及参数校验的高阶技巧(自定义校验,分组校验)。 此文是依赖于前文的代码基础,已经在项目中加入了全局异常校验器。(代码仓库在文末) 首先我们来看看什么是Validator参数校验器,为什么需要参数校验? 为什么需要参数校验 在日常的接口开发中,为了防止非法参数对业务造成影响,经常需.

飘渺Jam的博客 7630

参数校验架构validator与优雅的异常处理

spring boot参数校验框架validator的使用以及优雅的异常处理方式

闲余知道 674

SpringBoot 中使用 validator 框架优雅地校验参数

举个例子:业务系统的用户需要保证其唯一性,用户属性不能与其他用户产生冲突,不允许与数据库中任何已有用户的用户名称、手机号码、邮箱产生重复。如:保存 User 的时候,userId 是可空的,但是更新 User 的时候,userId 的值必须 >= 1L;接口的第一个参数是 自定义注解类型,第二个参数是 被注解字段的类,因为需要校验多个参数,我们直接传入用户对象。在日常的开发中,为了防止非法参数对业务造成影响,需要对接口的参数进行校验,以便正确性地入库。的标准方式,借助自定义校验注解完成业务规则校验。

sco5282的博客 8566

Spring Boot自定义参数校验器

在Spring Boot中自定义参数校验器 当我们在项目中引入spring-boot-starter-validation的starter依赖后就直接可以在Controller的请求方法上使用诸如@NotNull、@Length等注解进行参数校验了。该starter底层是使用hibernate-validator提供的校验器做校验,虽然它提供了丰富的校验器,但是有些时候为了更方便的对参数进行校验,需要我们自己定义参数校验器。 准备环境 项目中必须有spring-boot-starter-validation

Cloud-Future的博客 3273
上一篇: SpringBoot学习笔记(三)——整合Mybatis实现增删改查
下一篇: SpringBoot学习笔记(四)——Spring Data JPA的使用
^^_candice
博客等级 码龄10年 3粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值