java 开发中,参数校验是非常常见的需求。
但是 hibernate-validator 在使用过程中,依然会存在一些问题。
- 实现 JSR-303 所有约束注解对应 API 实现
如今 java 最流行的 hibernate-validator 框架,但是有些场景是无法满足的。
比如:
-
验证新密码和确认密码是否相同。(同一对象下的不同属性之间关系)
-
当一个属性值满足某个条件时,才进行其他值的参数校验。
-
多个属性值,至少有一个不能为 null
其实,在对于多个字段的关联关系处理时,hibernate-validator 就会比较弱。
本项目结合原有的优点,进行这一点的功能强化。
hibernate-validator 基于运行时注解实现,便利性确实非常棒,但是性能并没有达到最高境界。
本项目主要想通过 java 编译时注解,解决性能问题。
hibernate-validator 的注解在设计之初没有进行单独的分离。
所以本框架将 hibernate-validator 中的注解单独提取出来,统一放在中央仓库,便于开发者只引入注解相关。
JDK1.7+
Maven 3.X+
<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>valid-core</artifactId>
<version>${project.version}</version>
</dependency>基于 fluent-api 的验证实现。
public void simpleTest() {
IResult result = ValidBs.newInstance().on(null, Constraints.notNullConstraint()).result();
System.out.println(result);
}- 日志信息
DefaultResult{pass=false, notPassList=[DefaultConstraintResult{pass=false, message='Expect is <not null>, but actual is <null>.', value=null, constraint=NotNullConstraint}], allList=null}