最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Spring中@NotEmpty、@NotBlank、@NotNull區(qū)別

 更新時(shí)間:2023年02月09日 10:33:20   作者:x@lijun  
本文主要介紹了淺談Spring中@NotEmpty、@NotBlank、@NotNull區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

1:引入依賴(lài)

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.0.5.RELEASE</version>
        </dependency>

@NotEmpty、@NotBlank、@NotNull 包的位置:

import javax.validation.constraints.*;

2:區(qū)別

@NotNull
適用于基本數(shù)據(jù)類(lèi)型(Integer,Long,Double等等),當(dāng) @NotNull 注解被使用在 String 類(lèi)型的數(shù)據(jù)上,則表示該數(shù)據(jù)不能為 Null(但是可以為 Empty)

注:被其標(biāo)注的字段可以使用 @size、@Max、@Min 對(duì)字段數(shù)值進(jìn)行大小的控制

@NotBlank
適用于 String 類(lèi)型的數(shù)據(jù)上,加了@NotBlank 注解的參數(shù)不能為 Null 且 trim() 之后 size > 0,必須有實(shí)際字符

@NotEmpty
適用于 String、Collection集合、Map、數(shù)組等等,加了@NotEmpty 注解的參數(shù)不能為 Null 或者 長(zhǎng)度為 0

3:使用方法

@Data
public class BigPeople {
    @ApiModelProperty(value = "id" ,required = true)
    @NotNull(message = "id不能為空")
    @Length(message = "id不能超過(guò){max}個(gè)長(zhǎng)度",max = 10)
    private Integer id;
 
    @ApiModelProperty(value = "name" ,required = true)
    @NotBlank(message = "name不能為空")
    @Size(message = "名字最長(zhǎng)為{max} 個(gè)字",max = 10)
    private String name;
 
    @ApiModelProperty(value = "age" ,required = true)
    @NotNull(message = "id不能為空")
    @Range(message = "age的長(zhǎng)度范圍為{min}歲到{max}歲之間",min = 5,max = 10)
    private Integer age;
 
    @ApiModelProperty(value = "treeNode" ,required = true)
    @NotEmpty(message = "treeNode不能為空")
    private List<String> treeNode;
    
}

@Valid 包位置:

import javax.validation.Valid;

@Validated 包的位置

import org.springframework.validation.annotation.Validated;
    @ApiOperation(value = "新增或者修改一個(gè)人的信息")
    @PostMapping("/updateOrInsert")
    public Result updateOrInsert(@Valid @RequestBody  Person person){
        Boolean updateOrInsert = personService.updateOrInsert(person);
        if (updateOrInsert) {
            return new Result(ResultCode.SUCCESS,updateOrInsert);
        }
       return new Result(ResultCode.ERROR, "新增或者修改一個(gè)人的信息失敗");
    }
  
    @ApiOperation(value = "新增或者修改一個(gè)人的信息")
    @PostMapping("/updateOrInsert")
    public Result updateOrInsert(@Validated @RequestBody  Person person){
        Boolean updateOrInsert = personService.updateOrInsert(person);
        if (updateOrInsert) {
            return new Result(ResultCode.SUCCESS,updateOrInsert);
        }
       return new Result(ResultCode.ERROR, "新增或者修改一個(gè)人的信息失敗");
    }

 最上面三個(gè)注釋?zhuān)?必須需要搭配@Valid 或者@Validated使用,在檢驗(yàn)Controller的入?yún)⑹欠穹弦?guī)范時(shí)

@Valid 和 @Validated 比較

最后我們來(lái)對(duì) @Valid 和 @Validated 兩個(gè)注解進(jìn)行總結(jié)下:

1:@Valid 和 @Validated 兩者都可以對(duì)數(shù)據(jù)進(jìn)行校驗(yàn),待校驗(yàn)字段上打的規(guī)則注解(@NotNull, @NotEmpty等)都可以對(duì) @Valid 和 @Validated 生效;

2:@Valid 進(jìn)行校驗(yàn)的時(shí)候,需要用 BindingResult 來(lái)做一個(gè)校驗(yàn)結(jié)果接收。當(dāng)校驗(yàn)不通過(guò)的時(shí)候,如果手動(dòng)不 return ,則并不會(huì)阻止程序的執(zhí)行;

3:@Validated 進(jìn)行校驗(yàn)的時(shí)候,當(dāng)校驗(yàn)不通過(guò)的時(shí)候,程序會(huì)拋出400異常,阻止方法中的代碼執(zhí)行,這時(shí)需要再寫(xiě)一個(gè)全局校驗(yàn)異常捕獲處理類(lèi),然后返回校驗(yàn)提示。

4:總體來(lái)說(shuō),@Validated 使用起來(lái)要比 @Valid 方便一些,它可以幫我們節(jié)省一定的代碼,并且使得方法看上去更加的簡(jiǎn)潔。

此包下其它常用的校驗(yàn)注解:

注解含義
@Null元素必須為null
@NotNull元素不能null
@AssertTrue元素必須為true
@AssertFalse元素必須是false
@Min(value)元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值
@Max(value)元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值
@DecimalMin(value)元素必須是一個(gè)數(shù)字,其值必須大于等于指定的最小值
@DecimalMax(value)元素必須是一個(gè)數(shù)字,其值必須小于等于指定的最大值
@Size(max,min)元素的大小必須在指定的范圍內(nèi)
@Digits(integer,fraction)元素必須是一個(gè)數(shù)字,其值必須在可接受的范圍內(nèi)
@Past元素必須是一個(gè)過(guò)去的日期
@Future元素必須是一個(gè)將來(lái)的日期
@Pattern(value)元素必須符合指定的正則表達(dá)式

@Email

@Length

@NotEmpty

@Range

1:元素必須是電子郵箱地址

2:字符串的大小必須在指定的范圍內(nèi)

3:字符串必須非空

4:元素必須在合理的范圍內(nèi)

到此這篇關(guān)于淺談Spring中@NotEmpty、@NotBlank、@NotNull區(qū)別的文章就介紹到這了,更多相關(guān)Spring @NotEmpty、@NotBlank、@NotNull內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot中@EnableAsync和@Async注解的使用小結(jié)

    SpringBoot中@EnableAsync和@Async注解的使用小結(jié)

    在SpringBoot中,可以通過(guò)@EnableAsync注解來(lái)啟動(dòng)異步方法調(diào)用的支持,通過(guò)@Async注解來(lái)標(biāo)識(shí)異步方法,讓方法能夠在異步線(xiàn)程中執(zhí)行,本文就來(lái)介紹一下,感興趣的可以了解一下
    2023-11-11
  • JavaGUI實(shí)現(xiàn)隨機(jī)單詞答題游戲

    JavaGUI實(shí)現(xiàn)隨機(jī)單詞答題游戲

    這篇文章主要為大家詳細(xì)介紹了JavaGUI實(shí)現(xiàn)隨機(jī)單詞答題游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • java線(xiàn)程中start和run的區(qū)別詳解

    java線(xiàn)程中start和run的區(qū)別詳解

    這篇文章主要介紹了java線(xiàn)程中start和run的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringMVC源碼解讀之HandlerMapping

    SpringMVC源碼解讀之HandlerMapping

    這篇文章主要介紹了SpringMVC源碼解讀之HandlerMapping 的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Java多線(xiàn)程面試題(面試官常問(wèn))

    Java多線(xiàn)程面試題(面試官常問(wèn))

    這篇文章主要介紹了Java多線(xiàn)程面試題(面試官常問(wèn)),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 深入jetty的使用詳解

    深入jetty的使用詳解

    本篇文章是對(duì)jetty的使用進(jìn)行了詳細(xì)的分析解釋。需要的朋友參考下
    2013-05-05
  • 通過(guò)字節(jié)碼看java中this的隱式傳參詳解

    通過(guò)字節(jié)碼看java中this的隱式傳參詳解

    這篇文章主要給大家介紹了關(guān)于如何通過(guò)字節(jié)碼看java中this的隱式傳參的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • IDEA中配置Python環(huán)境并運(yùn)行方式

    IDEA中配置Python環(huán)境并運(yùn)行方式

    本文介紹了在Mac和Windows平臺(tái)上安裝Python環(huán)境的方法,并詳細(xì)講解了如何在IntelliJ IDEA中安裝Python插件、創(chuàng)建Python工程和運(yùn)行Python文件,同時(shí),還提到了一些常用的Python框架,如Django、Google App Engine和SQL支持
    2025-03-03
  • SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置

    SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置

    Spring框架與Quartz調(diào)度器的集成提供了強(qiáng)大而靈活的定時(shí)任務(wù)解決方案,本文主要介紹了SpringQuartz定時(shí)任務(wù)核心組件JobDetail與Trigger配置,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • elasticsearch通過(guò)guice注入Node組裝啟動(dòng)過(guò)程

    elasticsearch通過(guò)guice注入Node組裝啟動(dòng)過(guò)程

    這篇文章主要為大家介紹了?elasticsearch通過(guò)guice注入Node組裝啟動(dòng)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04

最新評(píng)論

科技| 滕州市| 铜鼓县| 林州市| 滦南县| 马龙县| 横山县| 沁源县| 乐陵市| 桐柏县| 田林县| 楚雄市| 阜南县| 钟祥市| 吐鲁番市| 峨边| 星子县| 浦东新区| 敦化市| 龙州县| 汕头市| 龙川县| 宁远县| 天长市| 新田县| 班玛县| 德州市| 法库县| 吉木萨尔县| 珠海市| 湟中县| 长沙市| 改则县| 江西省| 青铜峡市| 汉阴县| 西畴县| 施秉县| 湖南省| 积石山| 缙云县|