JSR 303 是java中的Bean Validation 的規(guī)范,當我們處理一個應(yīng)用程序的業(yè)務(wù)邏輯,數(shù)據(jù)校驗是必須要考慮和面對的事情,應(yīng)用程序必須通過某種手段來確保輸入進來的數(shù)據(jù)從語義上來講是正確的,我們的應(yīng)用程序通常是采用分層開發(fā)的,有時候相同的邏輯校驗會出現(xiàn)在不同層之中,防止代碼的冗余,為了避免這樣的情況發(fā)生,最好是將驗證邏輯與相應(yīng)的域模型進行綁定。
Hibernate Validator 是 Bean Validation 的參考實現(xiàn) . Hibernate Validator 提供了 JSR 303 規(guī)范中所有內(nèi)置 constraint 的實現(xiàn)。
Java校驗API所提供的校驗注解

javaValidation1.png

javaValidation2.png
可以在Spring mvc的請求方法中使用@Valid來進行數(shù)據(jù)的校驗。
public String userRegister(@Valid User user,Errors errors){}
如果有校驗出現(xiàn)錯誤的話, 那么這些錯誤可以通過Errors對象進行訪問,(重要一點需要注意, Errors參數(shù)要緊跟在帶有@Valid注解的參數(shù)后面, @Valid注解所標注的就是要檢驗的參數(shù)。 )這樣我們就可以首先直接
通過調(diào)用 Errors.hasErrors() 來檢驗數(shù)據(jù)是否有錯誤,做出相應(yīng)操作。