用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,註解可以直接寫驗證方法,代碼簡潔,但是也是不夠靈活

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