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ì)直接返回。
依賴:
<!--添加依賴--> <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è)依賴了。
版本提供依賴:
依賴注釋:
注解 | 用途 |
---|---|
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)文章
配置IDEA中java項(xiàng)目配置swagger全過(guò)程
這篇文章主要介紹了配置IDEA中java項(xiàng)目配置swagger全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼驗(yàn)證登陸校驗(yàn)功能詳解
驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼2022-09-09啟動(dòng)異常invalid constant type:15的解決方案
今天小編就為大家分享一篇關(guān)于啟動(dòng)異常invalid constant type:15的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12使用Spring Boot的LoggersEndpoint管理日志級(jí)別
這篇文章主要為大家介紹了使用Spring Boot的LoggersEndpoint管理日志級(jí)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11為zookeeper配置相應(yīng)的acl權(quán)限
這篇文章主要介紹了為zookeeper配置相應(yīng)的acl權(quán)限的相關(guān)實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09myeclipse開(kāi)發(fā)servlet_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
MyEclipse,是在eclipse基礎(chǔ)上加上自己的插件開(kāi)發(fā)而成的功能強(qiáng)大的企業(yè)級(jí)集成開(kāi)發(fā)環(huán)境,主要用于Java、Java EE以及移動(dòng)應(yīng)用的開(kāi)發(fā)。下面這篇文章主要給大家介紹了關(guān)于myeclipse開(kāi)發(fā)servlet的相關(guān)資料,需要的朋友可以參考下。2017-07-07Java實(shí)現(xiàn)刪除PDF中指定頁(yè)面
這篇文章主要為大家詳細(xì)介紹了如何使用一個(gè)免費(fèi)的國(guó)產(chǎn)Java庫(kù)來(lái)刪除PDF中的指定頁(yè)面或者刪除PDF中的空白頁(yè),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11SpringBoot?將配置文件掛到?jar?包外面的操作方法
在 SpringBoot 中,可以將配置文件放在 jar 包外面,這樣可以方便地修改配置而不需要重新打包和部署,這篇文章主要介紹了SpringBoot?如何將配置文件掛到?jar?包外面,需要的朋友可以參考下2023-03-03Java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例
這篇文章主要介紹了java批量從svn導(dǎo)出多個(gè)項(xiàng)目代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03