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

spring boot參數(shù)驗(yàn)證注解@NotNull、@NotBlank和@NotEmpty區(qū)別解析

 更新時(shí)間:2024年05月11日 10:24:43   作者:消碼哥  
使用spring boot參數(shù)驗(yàn)證是常常會使用@NotNull、@NotBlank和@NotEmpty三個(gè)判斷是否不為空的注解,中文都有不能為空的意思,大部分使用者都傻傻分清它們之間到底有什么區(qū)別,今天就讓咱們來一起探索它們之間的不同吧,感興趣的朋友一起看看吧

前言

使用spring boot參數(shù)驗(yàn)證是常常會使用@NotNull、@NotBlank和@NotEmpty三個(gè)判斷是否不為空的注解,中文都有不能為空的意思,大部分使用者都傻傻分清它們之間到底有什么區(qū)別。今天就讓咱們來一起探索它們之間的不同吧。

說明

注解名稱功能
@NotNull可用于所有類型的字段,判斷字段不能為null
@NotBlank只能用于String類型的字段,判斷字段不能為空串或空白(空格或制表符)字符串
@NotEmpty可用于String類型和集合類型,用在String字段上時(shí),字段不能為空串;用于集合時(shí),集合不能為null或集合的size不為0

共同點(diǎn):三個(gè)注解標(biāo)注的字段都不能為null

舉例

實(shí)體User.java

import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
/**
 * @Description TODO
 * @Author liqinglong
 * @DateTime 2024-04-30 11:02
 * @Version 1.0
 */
@Data
public class User {
    @NotBlank(message = "姓名不為空")
    private String userName;
    @NotNull(message = "年齡不能為空")
    private Integer age;
    @NotEmpty(message = "權(quán)限列表不能空")
    private List<String> rolerList;
}

測試類 ValidTest.java

import com.ruoyi.common.exception.ServiceException;
import org.apache.commons.collections.CollectionUtils;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description TODO
 * @Author liqinglong
 * @DateTime 2024-04-30 11:07
 * @Version 1.0
 */
public class ValidTest {
    public static void main(String[] args) {
        // Bean 驗(yàn)證器
        ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
        Validator validator = vf.getValidator();
        User user = new User();
        //姓名為空格或制表符
        user.setUserName("                      ");
        //年齡為null
        user.setAge(null);
        //權(quán)限集合的長度為0
        List<String> roles = new ArrayList<>();
        user.setRolerList(roles);
        // 校驗(yàn)的業(yè)務(wù)對象:user,Bean 類型:User
        Set<ConstraintViolation<User>> checkSet = validator.validate(user);
        if (CollectionUtils.isNotEmpty(checkSet)) {
            // Bean驗(yàn)證不通過
            throw new ServiceException(checkSet.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(",")));
        }
    }
}

運(yùn)行結(jié)果:

在這里插入圖片描述

其它各種情況,請同學(xué)自行測試,測試得出的結(jié)論歡迎到評論區(qū)留言。

到此這篇關(guān)于spring boot參數(shù)驗(yàn)證注解@NotNull、@NotBlank和@NotEmpty區(qū)別的文章就介紹到這了,更多相關(guān)spring boot參數(shù)驗(yàn)證注解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)實(shí)時(shí)彈幕的示例代碼

    SpringBoot實(shí)現(xiàn)實(shí)時(shí)彈幕的示例代碼

    實(shí)時(shí)彈幕系統(tǒng)已成為現(xiàn)代視頻網(wǎng)站和直播平臺的標(biāo)準(zhǔn)功能,它讓觀眾可以在觀看視頻時(shí)發(fā)送即時(shí)評論,本文將介紹如何使用SpringBoot構(gòu)建一個(gè)實(shí)時(shí)彈幕系統(tǒng),需要的可以了解下
    2025-06-06
  • Java實(shí)現(xiàn)利用圖片或視頻生成GIF并發(fā)送微信

    Java實(shí)現(xiàn)利用圖片或視頻生成GIF并發(fā)送微信

    這篇文章主要為大家詳細(xì)介紹了Java語言如何利用圖片或視頻實(shí)現(xiàn)生成GIF并發(fā)送微信的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以嘗試一下
    2022-11-11
  • Java中的各種list有什么區(qū)別及l(fā)ist和set區(qū)別詳析

    Java中的各種list有什么區(qū)別及l(fā)ist和set區(qū)別詳析

    List是Java集合框架中使用頻率比較高的一個(gè)接口,它的特點(diǎn)是存儲的數(shù)據(jù)是有序的并且數(shù)據(jù)是可以重復(fù)的,這篇文章主要介紹了Java中各種list有什么區(qū)別及l(fā)ist和set區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2026-06-06
  • java組裝樹形結(jié)構(gòu)List問題

    java組裝樹形結(jié)構(gòu)List問題

    這篇文章主要介紹了java組裝樹形結(jié)構(gòu)List問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java AQS(AbstractQueuedSynchronizer)源碼解析

    Java AQS(AbstractQueuedSynchronizer)源碼解析

    AbstractQueuedSynchronizer被稱為隊(duì)列同步器,簡稱為大家熟知的AQS,這個(gè)類可以稱作concurrent包的基礎(chǔ)。本文將通過剖析源碼來看看AQS是如何工作的,感興趣的可以了解一下
    2023-02-02
  • SpringBoot多模塊自動配置失效問題的解決方案

    SpringBoot多模塊自動配置失效問題的解決方案

    在Spring?Boot多模塊項(xiàng)目中,模塊間配置不生效是一個(gè)復(fù)雜但可解決的問題,尤其涉及自動配置類、依賴沖突、條件注解以及IDE配置,所以本文給大家介紹了SpringBoot多模塊自動配置失效問題的解決方案,需要的朋友可以參考下
    2025-05-05
  • Java System.setProperty()用法詳解

    Java System.setProperty()用法詳解

    這篇文章主要介紹了Java System.setProperty()用法詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Java關(guān)于遠(yuǎn)程調(diào)試程序教程(以Eclipse為例)

    Java關(guān)于遠(yuǎn)程調(diào)試程序教程(以Eclipse為例)

    這篇文章主要介紹了Java關(guān)于遠(yuǎn)程調(diào)試程序教程(以Eclipse為例),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java中的自動拆裝箱、基本類型的轉(zhuǎn)換、包裝類的緩存詳解

    Java中的自動拆裝箱、基本類型的轉(zhuǎn)換、包裝類的緩存詳解

    文章詳細(xì)介紹了Java中數(shù)據(jù)類型的拆裝箱、自動拆箱和裝箱,以及包裝類的緩存機(jī)制,包括基本數(shù)據(jù)類型的容量大小、轉(zhuǎn)換規(guī)則和自動類型轉(zhuǎn)換等
    2024-12-12
  • 詳解JAVA之運(yùn)算符

    詳解JAVA之運(yùn)算符

    這篇文章主要介紹了詳解Java中運(yùn)算符以及相關(guān)的用法講解,一起跟著小編學(xué)習(xí)下吧,希望能夠給你帶來幫助
    2021-11-11

最新評論

阳东县| 晋城| 高要市| 棋牌| 仁怀市| 中西区| 台中市| 神农架林区| 迁西县| 哈巴河县| 桦甸市| 菏泽市| 灌南县| 阳原县| 锦屏县| 澄迈县| 大方县| 湟源县| 平度市| 凌源市| 墨脱县| 奈曼旗| 湟源县| 襄樊市| 锦屏县| 北川| 鄂托克前旗| 景宁| 沁水县| 垦利县| 比如县| 迭部县| 乌鲁木齐县| 郴州市| 阿图什市| 长治市| 三河市| 巢湖市| 四平市| 彰化县| 韶山市|