用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,注解可以直接写验证方法,代码简洁,但是也是不够灵活

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章