SpringBoot如何校验yue-library框架
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章给大家介绍SpringBoot如何校验yue-library框架,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。validator轻量级服务端校验框架支持注解、功能齐全、使
千家信息网最后更新 2025年01月17日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安全错误
数据库的锁怎样保障安全
网络安全模式有网卡驱动吗
软件开发项目规模度量
服务器托管的安全性
亳州管理软件开发平台
列车网络技术的发展
数据库外键的语法
杭州融创互联网科技
东坡互联网科技有限公司
网络安全密钥最后一位
云里面的服务器 安全
mc服务器怎么变成管理员
网络安全等级测评师考试
外包软件开发入什么
2套网络安全审计如何冗余
广东检易网络技术公司
服务器提示加密狗过期
华为服务器默认网关是多少
win7建立数据库
金星说网络安全
数据库签到表
现代通信网络技术李铮课后答案
网络技术与网络工程的关系
rust加载服务器很慢消耗c盘
奉化敏捷软件开发项目
软件开发外包怎么做账
手机游戏服务器怎么装
电脑的桌面应用软件开发
厦门市网络安全工程师
建筑行业网络安全监管
中信银行软件开发中心池锐