用fluent-validator,进行Java服务端验证
一.maven依赖
<!-- fluent 验证 -->
<dependency>
<groupId>com.baidu.unbiz</groupId>
<artifactId>fluent-validator</artifactId>
<version>1.0.5</version>
</dependency>
<!-- fluent 验证 的 hibernate-valiedator依赖-->
<dependency>
<groupId>com.baidu.unbiz</groupId>
<artifactId>fluent-validator-jsr303</artifactId>
<version>1.0.5</version>
</dependency>
<!--Validator用spring托管-->
<dependency>
<groupId>com.baidu.unbiz</groupId>
<artifactId>fluent-validator-spring</artifactId>
<version>1.0.5</version>
</dependency>
二.使用方式
A.1
实体类:
验证类:
LenthValidator:
测试:
输出结果:
B.2
实体类相同这次结合Hibernat-valiedator
测试:
这里用到了hibernate-valiedator的注解
测试结果:
C.3
实体类:
测试类:
测试结果:
这里用了failOver()方法
当出现校验失败时,也就是Validator的validate()方法返回了false,那么是继续还是直接退出呢?默认为使用failFast()方法,直接退出,如果你想继续完成所有校验,使用failOver()来skip掉。
三。总结
三种验证方式各有优劣,相互结合才能达到完美验证。
A1.能应付所有验证,但对于字段较多的实体,验证代码过于冗长。
B2.用注解的方式验证,代码简洁优雅,但对于同一个字段不同场景下需要不同验证的情况没办法解决。
C2.同B2,注解可以直接写验证方法,代码简洁,但是也是不够灵活