基于 (java) validation-api、hibernate-validator 的数据校验扩展

在Java 开发中,数据校验是保证系统健壮性和数据完整性的重要环节。`validation-api`和`hibernate-validator`功能强大,在这个基础上,做了一些检验简单扩展处理,在处理复杂业务场景时提供一些支持。

项目简介

`brilliant-validation`是一个基于Java validation-api和hibernate-validator的扩展库,通过引入AviatorScript 表达式引擎,实现了多字段关系校验,同时提供了一些单字段校验注解,让数据校验方便。

项目地址

✨ 主要功能

1. 基于Aviator的多字段关系校验

传统校验只能处理单个字段的规则,`brilliant-validation`支持使用AviatorScript表达式进行多字段之间的逻辑关系校验。

2. 单字段校验注解

内置了常用的单字段校验注解,如社会信用代码、身份证号、车牌号等。

📦 快速开始

添加依赖

> **版本说明**:

> - javax版本对应:2025.0.x

> - jakarta版本对应:2025.1.x

根据你的项目选择相应版本:

XML 复制代码
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>top.hjjcgzlafr</groupId>
            <artifactId>brilliant-validation-bom</artifactId>
            <version>{version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependency>
    <groupId>top.hjjcgzlafr</groupId>
    <artifactId>brilliant-validation-validator</artifactId>
</dependency>

🎯 使用指南

一、单字段校验注解
  • @ByteSize:字节长度校验
  • @CreditCode:社会信用代码校验
  • @IdentityCard:身份证号校验
  • @LicensePlate:车牌号校验
  • @Phone:手机号校验
二、多字段关系校验注解
  • @RelationCheck:单条关系校验
  • @RelationChecks:多条关系校验

💡 实战示例

示例测试项目地址

示例1:手机号校验
java 复制代码
@Phone(message = "手机号不正确")
private String mobile;
示例2:密码一致性校验(单条规则)
java 复制代码
@RelationCheck(expr = "password == confirmPassword", message = "两次密码不一致")
public class InfoDTO implements Serializable {
    private String password;
    private String confirmPassword;
}
示例3:复杂业务规则校验(多条规则)
java 复制代码
@RelationChecks({
        @RelationCheck(expr = "password == confirmPassword", message = "两次密码不一致"),
        @RelationCheck(expr = "username != nil", message = "username不能为空")
})
public class InfoDTO implements Serializable {
    private String password;
    private String confirmPassword;
    private String username;
}
相关推荐
qq_1249870753几秒前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
短剑重铸之日7 分钟前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
若鱼191929 分钟前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王38 分钟前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
努力学编程呀(๑•ี_เ•ี๑)1 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot
向上的车轮1 小时前
为什么.NET(C#)转 Java 开发时常常在“吐槽”Java:checked exception
java·c#·.net
Dragon Wu1 小时前
Spring Security Oauth2.1 授权码模式实现前后端分离的方案
java·spring boot·后端·spring cloud·springboot·springcloud
跳动的梦想家h1 小时前
环境配置 + AI 提效双管齐下
java·vue.js·spring
坚持就完事了1 小时前
Java中的集合
java·开发语言