在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;
}