天天看點

在系統中使用Bean Validation驗證參數

 當我們實作某個接口時,都需要對入參數進行校驗。例如下面的代碼

該方法輸入的四個參數都是必填項。用代碼進行參數驗證帶來幾個問題

需要寫大量的代碼來進行參數驗證。

需要通過注釋來直到每個入參的限制是什麼。

每個程式員做參數驗證的方式不一樣,參數驗證不通過抛出的異常也不一樣。

bean validation是一個通過配置注解來驗證參數的架構,它包含兩部分bean validation api和hibernate validator。

bean validation api是java定義的一個驗證參數的規範。

hibernate validator是bean validation api的一個實作。

引入pom

執行個體代碼如下,可以驗證bean,也可以驗證方法參數

執行代碼後,輸出如下:

validation驗證不成功可能傳回多個驗證錯誤資訊,我們可以包裝下,當有錯誤時直接傳回第一個錯誤的異常。

我們可以在每個方法的第一行調用beanvalidator.validate來驗證參數,測試代碼如下,

我們在對外暴露的接口的入參中使用bean validation api配置參數限制,如下xxxservice接口

在getobject的getobjectrequest參數中配置注解來限制參數。

編寫參數驗證攔截器,當方法被調用時,觸發validator驗證器執行驗證,如果不通過則抛出parametervalidationexception。

配置攔截器core-service.xml,攔截xxxservice的所有方法。