Java Validation Api使用方法實(shí)例解析
在我們應(yīng)用程序的業(yè)務(wù)邏輯中,經(jīng)常會(huì)碰到參數(shù)校驗(yàn)的情況,手動(dòng)的在代碼層上面進(jìn)行校驗(yàn)就會(huì)帶來(lái)很不好的體驗(yàn),閱讀、維護(hù)的成本會(huì)大大增加,造成冗余。因此有了這個(gè)JSR 303。
Bean Validation為JavaBean提供了相應(yīng)的API來(lái)給我們做參數(shù)的驗(yàn)證。通過(guò)Bean Validation比如@NotNull @Pattern等方法來(lái)對(duì)我們字段的值做進(jìn)一步的教研。
Bean Validation是一個(gè)運(yùn)行時(shí)框架,在驗(yàn)證之后錯(cuò)誤信息會(huì)直接返回。
依賴(lài):
<!--添加依賴(lài)--> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency>
注意: SpringBoot2 項(xiàng)目web組件已經(jīng)內(nèi)置了這個(gè)依賴(lài)了。
版本提供依賴(lài):

依賴(lài)注釋?zhuān)?/p>
| 注解 | 用途 |
|---|---|
| AssertFalse | 用于boolean字段,該字段的值只能為false |
| AssertTrue | 用于boolean字段,該字段只能為true |
| DecimalMax(value) | 被注釋的元素必須是一個(gè)數(shù)字,只能大于或等于該值 |
| DecimalMin(value) | 被注釋的元素必須是一個(gè)數(shù)字,只能小于或等于該值 |
| Digits(integer,fraction) | 檢查是否是一種數(shù)字的(整數(shù),小數(shù))的位數(shù) |
| 被注釋的元素必須是電子郵箱地址 | |
| Future | 檢查該字段的日期是否是屬于將來(lái)的日期 |
| FutureOrPresent | 判斷日期是否是將來(lái)或現(xiàn)在日期 |
| Max(value) | 該字段的值只能小于或等于該值 |
| Min(value) | 該字段的值只能大于或等于該值 |
| Negative | 判斷負(fù)數(shù) |
| NegativeOrZero | 判斷負(fù)數(shù)或0 |
| NotBlank | 只能用于字符串不為null,并且字符串trim()以后length要大于0 |
| NotEmpty | 集合對(duì)象的元素不為0,即集合不為空,也可以用于字符串不為null |
| NotNull | 不能為null |
| Null | 必須為 null |
| Past | 檢查該字段的日期是在過(guò)去 |
| PastOrPresent | 判斷日期是否是過(guò)去或現(xiàn)在日期 |
| Pattern(value) | 被注釋的元素必須符合指定的正則表達(dá)式 |
| Positive | 判斷正數(shù) |
| PositiveOrZero | 判斷正數(shù)或0 |
| Size(max, min) | 檢查該字段的size是否在min和max之間,可以是字符串、數(shù)組、集合、Map等 |
| Length(max, min) | 判斷字符串長(zhǎng)度 |
| CreditCardNumber | 被注釋的字符串必須通過(guò)Luhn校驗(yàn)算法,銀行卡,信用卡等號(hào)碼一般都用Luhn計(jì)算合法性 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot中@ConfigurationProperties自動(dòng)獲取配置參數(shù)的流程步驟
當(dāng)需要獲取配置文件中很多參數(shù)時(shí),我們可以定義參數(shù)的前綴相同,通過(guò)自動(dòng)映射 進(jìn)行獲取配置文件中參數(shù),所以本文給大家介紹了SpringBoot中@ConfigurationProperties自動(dòng)獲取配置參數(shù)的流程步驟,需要的朋友可以參考下2024-11-11
springboot實(shí)現(xiàn)配置本地訪(fǎng)問(wèn)端口及路徑
這篇文章主要介紹了springboot實(shí)現(xiàn)配置本地訪(fǎng)問(wèn)端口及路徑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Java高并發(fā)編程之CAS實(shí)現(xiàn)無(wú)鎖隊(duì)列代碼實(shí)例
這篇文章主要介紹了Java高并發(fā)編程之CAS實(shí)現(xiàn)無(wú)鎖隊(duì)列代碼實(shí)例,在多線(xiàn)程操作中,我們通常會(huì)添加鎖來(lái)保證線(xiàn)程的安全,那么這樣勢(shì)必會(huì)影響程序的性能,那么為了解決這一問(wèn)題,于是就有了在無(wú)鎖操作的情況下依然能夠保證線(xiàn)程的安全,需要的朋友可以參考下2023-12-12
SpringMvc @RequestParam 使用推薦使用包裝類(lèi)型代替包裝類(lèi)型
這篇文章主要介紹了SpringMvc @RequestParam 使用推薦使用包裝類(lèi)型代替包裝類(lèi)型,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02

