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