# est-spi-validation **Repository Path**: est-spi/validation ## Basic Information - **Project Name**: est-spi-validation - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EST SPI Validation [English Version](README.en.md) ## EST SPI 验证模块 est-spi-validation 是 EST SPI 框架的验证模块,提供基于注解的对象验证功能。 ### 核心功能 #### 验证注解 提供常用的验证注解: - @NotNull:非空验证 - @NotBlank:非空白验证 - @Size:大小验证 - @Min:最小值验证 - @Max:最大值验证 - @Email:邮箱格式验证 - @Pattern:正则表达式验证 #### ConstraintValidator - 约束验证器接口 定义约束验证器的接口。 #### ValidationContext - 验证上下文 提供验证过程中的上下文信息。 #### Validator - 验证器接口 定义验证器的接口。 #### DefaultValidator - 默认验证器实现 基于注解的对象验证器实现。 ### 快速开始 #### 定义验证类 ```java import ltd.idcu.est.spi.validation.annotation.*; public class User { @NotNull(message = "用户名不能为空") private String username; @NotBlank(message = "密码不能为空") private String password; @Size(min = 2, max = 20, message = "昵称长度必须是?是?0之间") private String nickname; @Min(value = 18, message = "年龄必须大于等于18") @Max(value = 100, message = "年龄必须小于等于100") private Integer age; @Email(message = "邮箱格式不正确") private String email; @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确") private String phone; // getters and setters } ``` #### 使用验证器 ```java import ltd.idcu.est.spi.validation.DefaultValidator; import ltd.idcu.est.spi.validation.ValidationResult; import ltd.idcu.est.spi.validation.Validator; public class Example { public static void main(String[] args) { Validator validator = new DefaultValidator(); User user = new User(); user.setUsername(null); user.setPassword(" "); user.setNickname("a"); user.setAge(17); user.setEmail("invalid-email"); user.setPhone("12345"); ValidationResult result = validator.validate(user); if (result.isValid()) { System.out.println("验证通过"); } else { System.out.println("验证失败,错误数量:" + result.getViolationCount()); result.getViolations().forEach(violation -> { System.out.println(violation.getPropertyPath() + ": " + violation.getMessage()); }); } } } ``` #### 验证单个属性 ```java import ltd.idcu.est.spi.validation.DefaultValidator; import ltd.idcu.est.spi.validation.ValidationResult; import ltd.idcu.est.spi.validation.Validator; public class Example { public static void main(String[] args) { Validator validator = new DefaultValidator(); User user = new User(); user.setNickname("a"); ValidationResult result = validator.validateProperty(user, "nickname"); if (!result.isValid()) { System.out.println(result.getFirstMessage()); } } } ``` ### Maven 依赖 ```xml ltd.idcu.est.spi est-spi-validation 1.0.0 ``` ### 许可证 MIT License