欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java本地緩存Caffeine的簡單使用

    Java本地緩存Caffeine的簡單使用

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

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

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

    Spring Shell打Jar包時常用小技巧

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

    java的main方法中調用spring的service方式

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

    Elasticsearch中FST與前綴搜索應用實戰(zhàn)解析

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

    Java內存泄漏問題排查與解決

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

    Java concurrency之公平鎖(一)_動力節(jié)點Java學院整理

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

    RocketMQ根據(jù)Tag進行消息過濾

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

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

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

    探索Java I/O 模型的演進

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

最新評論