javax.validation.constraints注解使用
javax.validation.constraints注解
javax.validation.constraints是Java Validation API中的一個(gè)包,它提供了一組注解,用于在Java代碼中進(jìn)行數(shù)據(jù)校驗(yàn)和驗(yàn)證。
該包中定義了多個(gè)注解,用于標(biāo)記屬性或方法參數(shù)的驗(yàn)證規(guī)則。
開發(fā)者可以通過在對象的屬性上添加這些注解,來定義相應(yīng)的驗(yàn)證規(guī)則。
常用的注解
@NotNull:用于標(biāo)記屬性或方法參數(shù)不能為null。
- 適用于任何類型的屬性或方法參數(shù)。
- 不能用于基本數(shù)據(jù)類型,因?yàn)樗鼈儾唤邮躰ull值。
@NotEmpty:
- 用于標(biāo)記字符串、集合、Map等類型的屬性或方法參數(shù)不能為null且不能為空。
- 適用于String、Collection、Map和數(shù)組類型的屬性或方法參數(shù)。
@NotBlank:
- 用于標(biāo)記字符串類型的屬性或方法參數(shù)不能為null且包含至少一個(gè)非空格字符。
- 適用于String類型的屬性或方法參數(shù)。
@Min:
- 用于標(biāo)記數(shù)值類型的屬性或方法參數(shù)的最小值。
- 適用于byte、short、int、long和對應(yīng)的包裝類類型的屬性或方法參數(shù)。
@Max:
- 用于標(biāo)記數(shù)值類型的屬性或方法參數(shù)的最大值。
- 適用于byte、short、int、long和對應(yīng)的包裝類類型的屬性或方法參數(shù)。
@Size:
- 用于標(biāo)記字符串、集合、Map等類型的屬性或方法參數(shù)的大小范圍。
- 可以用于String、Collection、Map和數(shù)組類型的屬性或方法參數(shù)。
- 必須指定大小范圍,例如@Size(min=2, max=10)。
@Pattern:
- 用于標(biāo)記字符串類型的屬性或方法參數(shù)的正則表達(dá)式驗(yàn)證規(guī)則。
- 適用于String類型的屬性或方法參數(shù)。
- 必須指定正則表達(dá)式,例如@Pattern(regexp=“^[a-zA-Z0-9]+$”)。
@Email:
- 用于標(biāo)記字符串類型的屬性或方法參數(shù)必須符合電子郵件地址的格式。
- 適用于String類型的屬性或方法參數(shù)。
- 驗(yàn)證字符串是否符合電子郵件地址的格式。
其他注解
- @Past:用于驗(yàn)證日期或時(shí)間類型的屬性或方法參數(shù)必須在當(dāng)前時(shí)間之前。
- @Future:用于驗(yàn)證日期或時(shí)間類型的屬性或方法參數(shù)必須在當(dāng)前時(shí)間之后。
- @URL:用于驗(yàn)證字符串類型的屬性或方法參數(shù)必須符合URL的格式。
- @IP:用于驗(yàn)證字符串類型的屬性或方法參數(shù)必須符合IP地址的格式。
這些注解僅提供了基本的驗(yàn)證規(guī)則,可以根據(jù)實(shí)際需求進(jìn)行組合和自定義注解以滿足特定的驗(yàn)證需求。此外,還可以使用繼承和組合注解來擴(kuò)展驗(yàn)證規(guī)則
javax.validation.constraints中@NotBlank和@NotEmpty的區(qū)別
在Java的javax.validation.constraints包中,@NotBlank和@NotEmpty是用于驗(yàn)證屬性值非空的注解,它們之間有一些區(qū)別。
@NotBlank
@NotBlank 用于驗(yàn)證一個(gè)字符串是否為非空,它會去除字符串兩端的空格后再判斷是否為空。
@NotBlank 可以用在 String 類型的字段上。
例如,@NotBlank 用在一個(gè) String 類型的字段上,如果該字段為 null、空字符串或只包含空格,都會觸發(fā)驗(yàn)證失敗。
示例:
public class User { @NotBlank private String username; }
@NotEmpty
@NotEmpty 用于驗(yàn)證一個(gè)集合(Collection)、Map、數(shù)組或字符串是否非空,它不會去除字符串兩端的空格,而是直接判斷是否為空。
@NotEmpty 可以用在 Collection、Map、數(shù)組和 String 類型的字段上。
例如,@NotEmpty 用在一個(gè)集合類型的字段上,如list 或 JSONArray,如果該集合為空,會觸發(fā)驗(yàn)證失敗。
示例:
public class User { @NotEmpty private List<String> phoneNumbers; } @ApiModelProperty("結(jié)束日期(包含)") @NotNull private Date endDate; @ApiModelProperty("任務(wù)生成周天(1,2,3,4,5,6,7)") @NotNull private String weekDay; @ApiModelProperty("巡檢當(dāng)天時(shí)間班次") @NotEmpty private JSONArray period;
心得
- @NotBlank 主要用于驗(yàn)證字符串類型的字段是否非空,會去除兩端空格后再進(jìn)行判斷。
- @NotEmpty 用于驗(yàn)證集合、Map、數(shù)組或字符串類型的字段是否非空,不會去除空格,直接判斷是否為空。
根據(jù)具體的需求,你可以選擇使用 @NotBlank 或 @NotEmpty 進(jìn)行屬性非空的驗(yàn)證。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
spring boot加載資源路徑配置和classpath問題解決
這篇文章主要介紹了spring boot加載資源路徑配置和classpath問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Java中使用MyBatis-Plus操作數(shù)據(jù)庫的實(shí)例
本文主要介紹了Java中使用MyBatis-Plus操作數(shù)據(jù)庫的實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02java中@EnableAutoConfiguration注解使用
在Spring Boot框架中,@EnableAutoConfiguration是一種非常重要的注解,本文就來介紹一下java中@EnableAutoConfiguration注解使用,感興趣的可以了解一下2023-11-11spring設(shè)置定時(shí)任務(wù)方式(@Scheduled)
這篇文章主要介紹了spring設(shè)置定時(shí)任務(wù)方式(@Scheduled),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04