中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Spring Validation

發布時間:2021-11-03 17:37:38 來源:億速云 閱讀:179 作者:iii 欄目:編程語言

本篇內容主要講解“怎么使用Spring Validation”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么使用Spring Validation”吧!

首先添加POM依賴

新建一個Spring Boot項目,并在pom.xml文件添加依賴:

怎么使用Spring Validation

需要特別注意的一點是:如果我們項目中引入了spring-boot-starter-web依賴,那么它會自動依賴spring-boot-starter-validation,無需我們再手動添加依賴,防止出現一些版本兼容的問題。

添加約束注解

在接收參數的UserReq實體類對應的屬性上加上約束注解:

怎么使用Spring Validation

注意點:

  • 每個約束注解都有一個message元素,用于校驗失敗時的提示信息

  • 一個屬性可以添加多個約束注解,所有注解是與的關系,必須全部驗證通過

  • 可以使用正則表達式校驗參數

眼尖的同學可能會發現上面代碼中用到的一些約束注解一些是引用自javax.validation.constraints包下,還有一些引用自org.hibernate.validator.constraints包下,這是怎么一回事呢?

說到這里,不得不提一下JSR-303,JSR-303是JAVA EE(現改名為:Jakarta EE)中的一項子規范,叫Bean Validation,它定義了一些實體和方法驗證的約束和接口規范,而Hibernate Validator對Bean Validation規范中所有內置約束注解都提供了實現,并且還添加了一些額外的約束注解。

Bean Validation中內置的約束注解:

怎么使用Spring Validation

Hibernate Validator中添加的約束注解:

怎么使用Spring Validation

值得一提的是:在Hibernate Validator中額外添加的一些優秀的約束注解比如@Email@NotEmpty@NotBlank已經被吸收到Bean Validation標準約束注解中,所有我們在代碼中Import時應盡量使用javax.validation.constraints包下的約束注解。

怎么使用呢?

接收參數的實體類我們已經改造好了,但是還不能實現校驗的功能,還需要對Controller進行改造:

怎么使用Spring Validation

  • 在接收方法的參數前面加上@Validated注解,當然也可以加@Valid注解

  • 想要獲取參數校驗的結果,則需要進行校驗的參數后面緊跟一個BingingResult類型的參數,用來綁定校驗結果

關于第一點,@Validated注解由Spring框架提供,可以說是對JSR-303規范標準注解@Valid的封裝,可以提供額外的例如分組校驗的功能。實際上任何以"Valid"開頭的注解都可以實現同樣的效果(至于原因有機會專門寫一篇講一下,感興趣的可以關注一下)

至于第二點,為什么校驗結果會自動綁定到后面緊跟的BingingResult對象,這里面涉及到Spring DataBinder數據綁定相關的知識(以后會專門講解,感興趣的可以關注一下),現在我們只需要知道這樣寫就行。

請求測試

現在我們使用Postman工具來請求我們的接口:

怎么使用Spring Validation

然后我們打上斷點來調試一下bindingResult對象:

可以看到bindingResult對象成功綁定并返回了三個屬性校驗失敗的結果。

分組校驗

我們寫業務時通常會存在一種情況:新增操作時通常不需要校驗參數Id,而在修改或刪除操作時我們又需要校驗參數Id,那么對于同一個參數接收類UserReq,我們要怎么處理呢?

很簡單,首先我們新建一個更新分組,只需要一個普普通通的接口類就行:

怎么使用Spring Validation

接著我們在UserReq類里新增一個id屬性,同時加上@NotNull分組校驗:

怎么使用Spring Validation

groups支持傳入一個數組,可以傳入多個分組,對于id屬性來說,在更新和刪除操作時我們都需要校驗該屬性。

最后,在Controller里更新接口方法中添加校驗分組:

怎么使用Spring Validation

我們只需要在注解中加上需要校驗的Update分組就行啦。

到此,相信大家對“怎么使用Spring Validation”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

房山区| 理塘县| 洪江市| 漳州市| 蓝山县| 义马市| 黄骅市| 南充市| 榆社县| 隆昌县| 临漳县| 钟祥市| 镇雄县| 石楼县| 九江市| 贡嘎县| 区。| 清水河县| 奉新县| 保康县| 德州市| 安宁市| 张家界市| 荥经县| 栾川县| 洛宁县| 蕲春县| 岱山县| 长兴县| 酉阳| 台山市| 涡阳县| 彭阳县| 五华县| 平泉县| 犍为县| 太和县| 庆城县| 滨海县| 余庆县| 两当县|