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

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

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

前言

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

說明

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

共同點:三個注解標注的字段都不能為null

舉例

實體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 = "權限列表不能空")
    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 驗證器
        ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
        Validator validator = vf.getValidator();
        User user = new User();
        //姓名為空格或制表符
        user.setUserName("                      ");
        //年齡為null
        user.setAge(null);
        //權限集合的長度為0
        List<String> roles = new ArrayList<>();
        user.setRolerList(roles);
        // 校驗的業(yè)務對象:user,Bean 類型:User
        Set<ConstraintViolation<User>> checkSet = validator.validate(user);
        if (CollectionUtils.isNotEmpty(checkSet)) {
            // Bean驗證不通過
            throw new ServiceException(checkSet.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(",")));
        }
    }
}

運行結果:

在這里插入圖片描述

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

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

相關文章

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

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

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

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

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

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

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

    java組裝樹形結構List問題

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

    Java AQS(AbstractQueuedSynchronizer)源碼解析

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

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

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

    Java System.setProperty()用法詳解

    這篇文章主要介紹了Java System.setProperty()用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • Java關于遠程調試程序教程(以Eclipse為例)

    Java關于遠程調試程序教程(以Eclipse為例)

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

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

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

    詳解JAVA之運算符

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

最新評論

锡林郭勒盟| 徐闻县| 密山市| 汉阴县| 金溪县| 道孚县| 大连市| 丹东市| 钟祥市| 荥阳市| 依安县| 太保市| 报价| 宁蒗| 兴义市| 大新县| 沛县| 台中市| 兴海县| 松桃| 博罗县| 木兰县| 沙雅县| 余江县| 阜阳市| 甘南县| 南部县| 邢台县| 宜宾市| 泽州县| 萨嘎县| 五莲县| 潼关县| 乐昌市| 南和县| 三台县| 确山县| 正宁县| 肥西县| 马龙县| 尚志市|