news 2026/9/4 8:29:04

Spring Boot配合Hibernate Validator参数校验

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot配合Hibernate Validator参数校验

一、前言

在开发中经常需要写一些字段校验的代码,比如字段非空,字段长度限制,邮箱格式验证等等,写这些与业务逻辑关系不大的代码个人感觉有两个麻烦:

验证代码繁琐,重复劳动
方法内代码显得冗长,每次要看哪些参数验证是否完整,需要去翻阅验证逻辑代码

hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。

二、依赖引入

在springboot2.2.0以前版本
spring-boot-starter-web包里面有hibernate-validator包,不需要引用hibernate validator依赖。

在springboot2.2.x版本
spring-boot-starter-web包里面有spring-boot-starter-validation包,也不需要引用hibernate validator依赖。

在springboot2.3.0以后版本
spring-boot-starter-web包里面不含有hibernate-validator包,需要单独引入

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>

https://www.cnblogs.com/leeego-123/p/10820099.html

三、内置的校验注解

BeanValidation 中内置的 constraint
@Null被注释的元素必须为 null
@NotNull被注释的元素必须不为 null
@AssertTrue被注释的元素必须为 true
@AssertFalse被注释的元素必须为 false
@Min(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@Max(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max=, min=)被注释的元素的大小必须在指定的范围内
@Digits (integer, fraction)被注释的元素必须是一个数字,其值必须在可接受的范围内
@Past被注释的元素必须是一个过去的日期
@Future被注释的元素必须是一个将来的日期
@Pattern(regex=,flag=)被注释的元素必须符合指定的正则表达式
@NotBlank(message =)验证字符串非null,且长度必须大于0
@Email被注释的元素必须是电子邮箱地址
@Length(min=,max=)被注释的字符串的大小必须在指定的范围内
@NotEmpty被注释的字符串的必须非空
@Range(min=,max=,message=)被注释的元素必须在合适的范围内
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 8:27:51

工业红外热成像SDK集成实战:巨哥ThermoGroupSDK开发指南与性能优化

简介&#xff1a;本资源为巨哥相机官方ThermoGroupSDK在Windows平台的完整开发套件&#xff0c;面向工业检测、建筑节能、环境监测及医疗健康等领域的C/C#开发者与嵌入式工程师&#xff0c;解决热成像设备接入、实时图像处理与多相机协同分析等核心开发需求。压缩包共425个文件…

作者头像 李华
网站建设 2026/9/4 8:27:48

PWM闭环控制实现电机恒速:从PID算法到STM32实战

简介&#xff1a;本资源是一套面向嵌入式初学者与单片机开发者的直流电机恒速控制实践资料&#xff0c;聚焦PWM脉宽调制技术在电机转速稳定调节中的工程实现。资源通过Keil C51开发环境下的完整工程文件&#xff0c;系统呈现了基于8051架构的PWM生成、占空比动态调节及基础闭环…

作者头像 李华
网站建设 2026/9/4 8:25:34

表演影片制作全流程解析:从策划到后期技术要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 8:24:11

Python进阶教程:24_Markdown 转 HTML 零基础超详细教程

在 Python 中把 Markdown 文本转换成 HTML 网页&#xff0c;最经典、最常用的工具是 Python-Markdown 第三方库。它完全兼容标准 Markdown 语法&#xff0c;还可以通过「扩展插件」解锁表格、代码高亮、自动目录、脚注等进阶功能&#xff0c;非常适合生成技术文档、博客页面、笔…

作者头像 李华
网站建设 2026/9/4 8:22:42

ECharts仪表盘全链路实践:从核心原理到工程化封装

简介&#xff1a;本资源是一套基于ECharts 5.5.0实现的高复用性大屏仪表盘可视化方案&#xff0c;面向前端开发者、数据可视化工程师及BI看板搭建人员&#xff0c;聚焦统计分析场景下的KPI动态呈现与多维指标集成需求。压缩包共3个文件&#xff08;2个JS脚本负责图表初始化与数…

作者头像 李华
网站建设 2026/9/4 8:20:52

Python电商价格监控系统开发实战:从数据采集到自动化分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华