SpringBoot如何校验yue-library框架
发表于:2025-11-21 作者:千家信息网编辑
千家信息网最后更新 2025年11月21日,这篇文章给大家介绍SpringBoot如何校验yue-library框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。validator轻量级服务端校验框架支持注解、功能齐全、使
千家信息网最后更新 2025年11月21日SpringBoot如何校验yue-library框架
这篇文章给大家介绍SpringBoot如何校验yue-library框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
validator
轻量级服务端校验框架
支持注解、功能齐全、使用简便
一、功能简介
主要提供便捷的后台数据校验功能,支持单个字段或参数校验,也支持通过注解校验对象,用法简单。
提供基本的非空、长度、大小等校验方法,也提供一些特殊的正则校验、身份证、电话、邮箱、IP等校验方法。
二、注解介绍
@Valid 被注解的元素是一个POJO对象,用于检查此对象的所有被注解字段的值是否符合预期
Bean Validation 中内置的 constraint
| 注解 | 作用 |
|---|---|
| @Null | 被注解的元素必须为 null |
| @NotNull | 被注解的元素必须不为 null |
| @NotBlank | 被注解的元素必须不为空,并且必须包含至少一个非空白字符 |
| @NotEmpty | 被注解的元素必须非空 |
| @AssertTrue | 被注解的元素必须为 true |
| @AssertFalse | 被注解的元素必须为 false |
| @Max | 被注解的元素必须是一个数字,其值必须小于等于指定的最大值 |
| @Min | 被注解的元素必须是一个数字,其值必须大于等于指定的最小值 |
| @DecimalMax | 被注解的元素必须是一个数字,其值必须小于等于指定的最大值 |
| @DecimalMin | 被注解的元素必须是一个数字,其值必须大于等于指定的最小值 |
| @Digits | 被注解的元素必须是一个数字,其值必须在可接受的范围内 |
| @Positive | 被注解的元素必须是严格意义上的正数 |
| @PositiveOrZero | 被注解的元素必须是正数或0 |
| @Negative | 被注解的元素必须是一个严格意义上的负数 |
| @NegativeOrZero | 被注解的元素必须是负数或0 |
| @Past | 被注解的元素必须是过去的某个瞬间、日期或时间 |
| @PastOrPresent | 被注解的元素必须是过去或现在的某个瞬间、日期或时间 |
| @Future | 被注解的元素必须是将来的某个瞬间、日期或时间。 |
| @FutureOrPresent | 被注解的元素必须是当前或将来的某个瞬间、日期或时间。 |
| @Size | 被注解的元素的大小必须在指定的范围内 |
| 被注解的元素必须是电子邮箱地址 | |
| @Pattern | 被注解的元素必须符合指定的正则表达式 |
Hibernate Validator 附加的 constraint
| 注解 | 作用 |
|---|---|
| @Length | 被注解的字符串的大小必须在指定的范围内 |
| @Range | 被注解的元素必须在合适的范围内 |
| @URL | 验证带注解的字符串是否为URL |
| @Currency | 货币金额必须在正确的货币单位 |
| @CreditCardNumber | 带注解的元素必须表示有效的信用卡号 |
| @CodePointLength | 验证包含字符序列的代码点长度在min和max之间 |
| @ConstraintComposition | 布尔运算符,应用于组合约束注解的所有约束 |
| @SafeHtml | 验证用户提供的富文本值,以确保它不包含恶意代码,例如嵌入的元素 |
| @UniqueElements | 验证所提供集合中的每个对象都是惟一的,即不能在集合中找到两个相等的元素 |
| @EAN | 检查带注解的字符序列是否是有效的EAN 13号。验证数字的长度和校验数字 |
| @ISBN | 检查带注解的字符序列是否是有效的ISBN。数字的长度和校验数字都经过验证 |
| @LuhnCheck | Luhn算法检查约束 |
| @Mod10Check | Modulo 10 检查约束 |
| @Mod11Check | Modulo 11 检查约束 |
| @ParameterScriptAssert | 方法级约束,它根据带注解的方法或构造函数计算脚本表达式 |
| @ScriptAssert | 类级约束,它根据带注解的元素计算脚本表达式 |
Yue Validator 附加的 constraint
| 注解 | 作用 |
|---|---|
| @Cellphone | 手机号校验 |
| @IdCard | 身份证校验 |
| @PlateNumber | 中国车牌号校验 |
| @Birthday | 生日校验 |
| @Chinese | 中文校验 |
| @English | 英语校验 |
| @UUID | UUID校验 |
| @IPV4 | IPV4地址校验 |
| @IPV6 | IPV6地址校验 |
| @MacAddress | MAC地址校验 |
三、参数验证
单个参数验证
单个参数验证
// 参数String name = validationIPO.getName();String email = validationIPO.getEmail();String cellphone = validationIPO.getCellphone();int age = validationIPO.getAge();DateTime birthday = validationIPO.getBirthday();// 获得参数校验器-Bean注入import ai.yue.library.base.validation.Validator;@Autowiredprivate Validator validator;// 获得参数校验器-静态方法Validator.getValidatorAndSetParam(email).email("email");// 单个参数校验validator.param(email).email("email");validator.param(cellphone).cellphone("cellphone");validator.param(name).notNull("name").chinese("name").length(1, 30, "name");单个参数校验-通过param()连写(连写直接切换校验对象)
validator.param(name).notNull("name").param(email).length(5, 25, "email").param(age).min(20, "age").max(60, "age");POJO对象校验(推荐)
在类的属性上定义注解,同时支持自定义错误信息
@Datapublic class ValidationIPO { @NotEmpty(message = "姓名不能为空") @Length(max = 20, message = "姓名不能超过20个字") private String name; private DateTime birthday; @IdCard private String idcard; @Max(30) @Min(12) private int age; @Email @Length(max = 50) private String email; @Cellphone private String cellphone; @Pattern(regexp = "[1-9]([0-9]{5,11})") private String qq; }方式一: Controller层,通过注解@Valid校验 (推荐)
@PostMapping("/valid")public Result> valid(@Valid ValidationIPO validationIPO) {方式二: 通过调用validator.valid()方法
validator.valid(validationIPO);// 同样支持连写validator.valid(validationIPO).param(birthday).birthday("birthday");方式三: 将@Valid注解添加到POJO类上
@Data@Validpublic class ValidationIPO { // ...}并在Controller层接收此实体参数
@PostMapping("/valid")public Result> valid(ValidationIPO validationIPO) {校验不通过时处理
校验不通过会抛出ValidateException(运行时异常),ResultExceptionHandler类已默认处理。
错误响应示例:
{ "code": 433, "msg": "参数校验未通过,请参照API核对后重试", "flag": false, "count": null, "data": [ { "errorkey": "cellphone", "errorValue": null, "errorHintMsg": "不是一个合法的手机号码" }, { "errorkey": "idcard", "errorValue": "500223199607125633", "errorHintMsg": "不是一个合法的身份证号码" } ]}关于SpringBoot如何校验yue-library框架就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
注解
元素
参数
数字
验证
字符
对象
方法
检查
单个
支持
地址
日期
时间
范围
长度
框架
有效
作用
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
美利云自建数据库
小程序租用服务器费用账务处理
上海软件开发私人定做
pg数据库查层级
全球疾病负担数据库介绍
2021成都祥云杯网络安全大赛
电商小程序软件开发价钱
sql数据库同步表
微信软件开发几年了
网络安全的体系构建
网络安全宣报内容
数据库数据表er关系图
国际服1.1.7pvp服务器号
1.8服务器ip
六安君智达互联网科技有限公司
软件开发咨询费比例
数据库连接地址图片
软件开发费用需要待摊吗
广州培训软件开发平台
安徽管理软件开发商
日志 数据库表
常规网络安全调试
服务器电源风扇维修
网络安全青年力量微博
王者争霸pvp服务器ip
数据库设计过程
网络安全体系的好书
乐陵软件开发哪里实惠
四川思科网络技术学院
大学生网络技术比赛题目