亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

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

說(shuō)明

注解名稱(chēng)功能
@NotNull可用于所有類(lèi)型的字段,判斷字段不能為null
@NotBlank只能用于String類(lèi)型的字段,判斷字段不能為空串或空白(空格或制表符)字符串
@NotEmpty可用于String類(lèi)型和集合類(lèi)型,用在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;
}

測(cè)試類(lèi) 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)限集合的長(zhǎng)度為0
        List<String> roles = new ArrayList<>();
        user.setRolerList(roles);
        // 校驗(yàn)的業(yè)務(wù)對(duì)象:user,Bean 類(lèi)型:User
        Set<ConstraintViolation<User>> checkSet = validator.validate(user);
        if (CollectionUtils.isNotEmpty(checkSet)) {
            // Bean驗(yàn)證不通過(guò)
            throw new ServiceException(checkSet.stream().map(ConstraintViolation::getMessage).collect(Collectors.joining(",")));
        }
    }
}

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

在這里插入圖片描述

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

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

相關(guān)文章

  • Java本地緩存Caffeine的簡(jiǎn)單使用

    Java本地緩存Caffeine的簡(jiǎn)單使用

    這篇文章主要介紹了Java本地緩存Caffeine的簡(jiǎn)單使用,Caffeine 是基于 JAVA 8 的高性能本地緩存庫(kù),并且在 spring5后,spring 官方放棄了 Guava,而使用了性能更優(yōu)秀的 Caffeine 作為默認(rèn)緩存組件,需要的朋友可以參考下
    2023-12-12
  • Java判斷兩個(gè)集合是否具有交集及如何獲得交集詳解

    Java判斷兩個(gè)集合是否具有交集及如何獲得交集詳解

    這篇文章主要給大家介紹了關(guān)于Java判斷兩個(gè)集合是否具有交集及如何獲得交集的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Spring Shell打Jar包時(shí)常用小技巧

    Spring Shell打Jar包時(shí)常用小技巧

    這篇文章主要介紹了Spring Shell打Jar包時(shí)常用小技巧,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • java的main方法中調(diào)用spring的service方式

    java的main方法中調(diào)用spring的service方式

    這篇文章主要介紹了在java的main方法中調(diào)用spring的service方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析

    Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析

    這篇文章主要為大家介紹了Elasticsearch中FST與前綴搜索應(yīng)用實(shí)戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • Java內(nèi)存泄漏問(wèn)題排查與解決

    Java內(nèi)存泄漏問(wèn)題排查與解決

    大家好,本篇文章主要講的是Java內(nèi)存泄漏問(wèn)題排查與解決,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下
    2022-01-01
  • Java concurrency之公平鎖(一)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency之公平鎖(一)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java concurrency之公平鎖的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • RocketMQ根據(jù)Tag進(jìn)行消息過(guò)濾

    RocketMQ根據(jù)Tag進(jìn)行消息過(guò)濾

    消費(fèi)者訂閱了某個(gè)主題后,Apache RocketMQ 會(huì)將該主題中的所有消息投遞給消費(fèi)者。若消費(fèi)者只需要關(guān)注部分消息,可通過(guò)設(shè)置過(guò)濾條件在 Apache RocketMQ 服務(wù)端進(jìn)行過(guò)濾,只獲取到需要關(guān)注的消息子集,避免接收到大量無(wú)效的消息
    2023-02-02
  • java創(chuàng)建多級(jí)目錄文件的實(shí)例講解

    java創(chuàng)建多級(jí)目錄文件的實(shí)例講解

    下面小編就為大家分享一篇java創(chuàng)建多級(jí)目錄文件的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 探索Java I/O 模型的演進(jìn)

    探索Java I/O 模型的演進(jìn)

    什么是同步?什么是異步?阻塞和非阻塞又有什么區(qū)別?本文先從 Unix 的 I/O 模型講起,介紹了5種常見(jiàn)的 I/O 模型。而后再引出 Java 的 I/O 模型的演進(jìn)過(guò)程,并用實(shí)例說(shuō)明如何選擇合適的 Java I/O 模型來(lái)提高系統(tǒng)的并發(fā)量和可用性。,需要的朋友可以參考下
    2019-06-06

最新評(píng)論