Java中4種校驗(yàn)注解詳解(值校驗(yàn)、范圍校驗(yàn)、長(zhǎng)度校驗(yàn)、格式校驗(yàn))
1 值校驗(yàn)
1.1 @NotNull注解
被注解的元素必須不為空,一般用于數(shù)值類型的參數(shù)校驗(yàn)
@NotNull(message = "用戶編號(hào)不能為空") private Integer userId;
1.2 @NotBlank注解
驗(yàn)證注解的元素值不為空(不為null、去除首位空格后長(zhǎng)度為0),并且類型為String。
@NotBlank(message = "用戶名稱不能為空") private String userName;
1.3 @NotEmpty注解
驗(yàn)證注解的集合類參數(shù)不能為空。
@NotEmpty(message = "用戶列表不能為空") private List<Integer> userIds;
2 范圍校驗(yàn)
2.1 @Min注解
被注解的元素其值必須大于等于最小值,并且類型為int,long,float,double。
@Min(value = 18, message = "必須大于等于18") private int age;
2.2 @Max注解
被注解的元素其值必須小于等于最小值,并且類型為int,long,float,double。
@Max(value = 18, message = "必須小于等于18") private int age;
2.3 @DecimalMin注解
驗(yàn)證注解的元素值大于等于@DecimalMin指定的value值,并且類型為BigDecimal。
@DecimalMin(value = "150", message = "高度必須大于等于150") private BigDecimal height;
2.4 @DecimalMax注解
驗(yàn)證注解的元素值小于等于@DecimalMax指定的value值 ,并且類型為BigDecimal。
@DecimalMax(value = "300", message = "必須小于等于300") private BigDecimal height;
2.5 @Range注解
驗(yàn)證注解的元素值在最小值和最大值之間,并且類型為BigDecimal,BigInteger,CharSequence,byte,short,int,long。
@Range(max = 80, min = 18, message = "必須大于等于18且小于等于80") private int age;
3 長(zhǎng)度校驗(yàn)
3.1 @Size注解
被注解的元素的長(zhǎng)度必須在指定范圍內(nèi),并且類型為String,Array,List,Map。
@Size(max = 11, min = 7, message = "長(zhǎng)度必須大于等于7或小于等于11") private String mobile;
3.2 @Length注解
驗(yàn)證注解的元素值長(zhǎng)度在min和max區(qū)間內(nèi) ,并且類型為String。
@Length(max = 11, min = 7, message = "長(zhǎng)度必須大于等于7且小于等于11") private String mobile;
4 格式校驗(yàn)
4.1 @Digits注解
驗(yàn)證注解的元素值的整數(shù)位數(shù)和小數(shù)位數(shù)上限 ,并且類型為float,double,BigDecimal。
@Digits(integer=3,fraction = 2,message = "整數(shù)位上限為3位,小數(shù)位上限為2位") private BigDecimal height;
4.2 @Pattern注解
被注解的元素必須符合指定的正則表達(dá)式,并且類型為String。
@Pattern(regexp = "\\d{11}",message = "必須為數(shù)字,并且長(zhǎng)度為11") private String mobile;
4.3 @Email注解
驗(yàn)證注解的元素值是Email,也可以通過(guò)regexp和flag指定自定義的email格式,類型為String。
@Email(message = "必須是郵箱格式的字符串") private String email;
總結(jié)
到此這篇關(guān)于Java中4種校驗(yàn)注解(值校驗(yàn)、范圍校驗(yàn)、長(zhǎng)度校驗(yàn)、格式校驗(yàn))的文章就介紹到這了,更多相關(guān)Java校驗(yàn)注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java代碼實(shí)現(xiàn)酒店管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java代碼實(shí)現(xiàn)酒店管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05java隨機(jī)抽取指定范圍內(nèi)不重復(fù)的n個(gè)數(shù)
這篇文章主要為大家詳細(xì)介紹了java隨機(jī)抽取指定范圍內(nèi)不重復(fù)的n個(gè)數(shù),感興趣的小伙伴們可以參考一下2016-02-02Springboot 如何關(guān)閉自動(dòng)配置
這篇文章主要介紹了Springboot 如何關(guān)閉自動(dòng)配置的操作,具有很好的開(kāi)車價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09Apache Commons fileUpload實(shí)現(xiàn)文件上傳之一
這篇文章主要介紹了Apache Commons fileUpload實(shí)現(xiàn)文件上傳之一的相關(guān)資料,需要的朋友可以參考下2016-03-03Java操作PDF文件實(shí)現(xiàn)簽訂電子合同詳細(xì)教程
這篇文章主要介紹了如何在PDF中加入電子簽章與電子簽名的過(guò)程,包括編寫(xiě)Word文件、生成PDF、為PDF格式做表單、為表單賦值、生成文檔以及上傳到OBS中的步驟,需要的朋友可以參考下2025-01-01spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要介紹了spring?boot?使用?@Scheduled?注解和?TaskScheduler?接口實(shí)現(xiàn)定時(shí)任務(wù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06Mybatis動(dòng)態(tài)拼接sql提高插入速度實(shí)例
這篇文章主要介紹了Mybatis動(dòng)態(tài)拼接sql提高插入速度實(shí)例,當(dāng)數(shù)據(jù)量少的時(shí)候,沒(méi)問(wèn)題,有效時(shí)間內(nèi)可能完成插入,但是當(dāng)數(shù)據(jù)量達(dá)到一定程度的時(shí)候,每次都一個(gè)sql插入超時(shí),所以采用了拼接sql的方式加快速度,需要的朋友可以參考下2023-09-09詳解Spring Cloud Alibaba Sidecar多語(yǔ)言微服務(wù)異構(gòu)
這篇文章主要介紹了詳解Spring Cloud Alibaba Sidecar多語(yǔ)言微服務(wù)異構(gòu),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11