当前位置: 首页 > news >正文

Java Bean Validation 注解:@NotEmpty、@NotBlank 和 @NotNull 的区别

1. 概述

Bean Validation 是 Java 提供的一种对 Java Bean 实例的字段或方法参数进行校验的标准机制。它允许开发者使用注解的方式定义验证逻辑,这些注解可以在类、字段或者方法上声明,并且可以被任何实现了 JSR 303/JSR 349 规范的框架(如 Hibernate Validator)所识别和执行。

2. @NotNull
  • 含义:该注解用于检查一个字段或参数是否为 null。如果字段不是 null,则通过验证。
  • 适用范围
    • 可以应用于任何类型的字段或方法参数。
  • 示例代码
    public class User {@NotNull(message = "Name cannot be null")private String name;// Getter and Setter methods...
    }
    
3. @NotEmpty
  • 含义:该注解用于检查一个字符串或集合类型(如 List, Set, Map)是否为空。对于字符串,它检查是否为 null 或长度为 0;对于集合类型,它检查是否为 null 或大小为 0。
  • 适用范围
    • 只能应用于字符串和集合类型的字段或方法参数。
  • 示例代码
    public class User {@NotEmpty(message = "Email cannot be empty")private String email;// Getter and Setter methods...
    }
    
4. @NotBlank
  • 含义:该注解用于检查一个字符串是否为 null 或仅由空白字符组成(即长度为 0 或只包含空格、制表符等)。如果字符串非空且含有非空白字符,则通过验证。
  • 适用范围
    • 只能应用于字符串类型的字段或方法参数。
  • 示例代码
    public class User {@NotBlank(message = "Password cannot be blank")private String password;// Getter and Setter methods...
    }
    
5. 总结
  • @NotNull:检查任何类型的对象是否为 null
  • @NotEmpty:检查字符串或集合类型的对象是否为 null 或为空。
  • @NotBlank:检查字符串是否为 null 或仅由空白字符组成。
6. 使用建议
  • 当需要验证对象不为 null 时,使用 @NotNull
  • 需要确保字符串或集合类型非空时,使用 @NotEmpty
  • 如果需要确保字符串不仅非空而且含有非空白字符时,使用 @NotBlank

相关文章:

Java Bean Validation 注解:@NotEmpty、@NotBlank 和 @NotNull 的区别

1. 概述 Bean Validation 是 Java 提供的一种对 Java Bean 实例的字段或方法参数进行校验的标准机制。它允许开发者使用注解的方式定义验证逻辑,这些注解可以在类、字段或者方法上声明,并且可以被任何实现了 JSR 303/JSR 349 规范的框架(如 …...

Java | Leetcode Java题解之第322题零钱兑换

题目&#xff1a; 题解&#xff1a; public class Solution {public int coinChange(int[] coins, int amount) {int max amount 1;int[] dp new int[amount 1];Arrays.fill(dp, max);dp[0] 0;for (int i 1; i < amount; i) {for (int j 0; j < coins.length; j)…...

Linux初启征程指南:攻克常见系统指令与权限初理解

有时候觉得&#xff0c;电脑就像一个高贵冷艳的妹纸。 400&#xff0c;是她冷冰冰地说&#xff1a;“我听不懂你在说什么”&#xff1b; 401&#xff0c;是她无情地转身&#xff1a;“我不认识你&#xff0c;别说那些奇怪的话”&#xff1b; 403&#xff0c;是她残酷的拒绝&…...

第十九节、野猪受伤死亡逻辑动画

一、协程 在这个代码中&#xff0c;update更新非常快&#xff0c;不会有时间去addforce增加力 所以需要使用协程&#xff0c;同时开启 1、写法 WaitForSeconds(0.45f) 意思是等待时间0.45秒后 写完协程程序后&#xff0c;需要开启 &#xff0c;固定写法如下 2、注意 dir是局…...

vue 开发工具 Hbuilder 简介及应用

一、简介 HBuilderX 是一款流行的前端开发工具&#xff0c;由DCloud公司开发。它支持多种编程语言&#xff0c;如HTML、CSS、JavaScript、Vue、UniApp等&#xff0c;非常适合用来开发Web应用、移动端应用和跨平台应用。 官网地址&#xff1a;https://www.dcloud.io/hbuilderx.…...

【杂谈】-MQTT与HTTP在物联网中的比较:为什么MQTT是更好的选择

MQTT与HTTP在物联网中的比较&#xff1a;为什么MQTT是更好的选择 文章目录 MQTT与HTTP在物联网中的比较&#xff1a;为什么MQTT是更好的选择1、什么是MQTT2、什么是HTTP3、MQTT和HTTP之间的差异 MQTT&#xff08;消息队列遥测传输&#xff09;和HTTP&#xff08;超文本传输协议…...

冠豪猪优化算法(CPO)、卷积神经网络(CNN)与支持向量机(SVM)结合的预测模型(CPO-CNN-SVM)及其Python和MATLAB实现

### 一、背景 在现代数据挖掘和机器学习领域&#xff0c;特征选择与模型优化是两个重要的研究方向。随着深度学习的发展&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在图像、视频等多媒体数据处理中的表现优异。然而&#xff0c;传统的CNN模型通常需要大量的标注数据和…...

【通信原理】

通信原理 二、频谱与随机信号2.1 频谱2.1.1 频谱or频谱密度函数2.1.2 幅度谱&#xff08;幅频特性&#xff09;or相位谱&#xff08;相频特性&#xff09; 2.2 能量信号2.2.1 什么是能量信号2.2.2 巴塞瓦尔定理2.2.3 维纳钦辛定理 2.3 功率信号2.3.1 功率信号2.3.2 巴塞瓦尔定理…...

有序数组的平方(LeetCode)

题目 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 解题 以下算法时间复杂度为 def sortedSquares(nums):n len(nums)result [0] * n # 创建一个结果数组&#xff0c;长度与 nums 相同le…...

Python配置镜像

1. 查看当前源 pip config get global.index-url 2. 临时变更源 pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple 3. 永久变更源 清华&#xff08;推荐速度最快&#xff09; pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple 百…...

Python新手错误集锦(PyCharm)

# 自学Python&#xff0c;用Pycharm作环境。我这个手新到这时我学习的第一个编程软件&#xff0c;且本人专业是化学&#xff0c;以前对电脑最高级的使用是玩扫雷游戏。所以这里集合的错误都是小透明错误&#xff0c;大部分人请绕道。不断更新中...... 缩进错误 记住“indent”…...

CTFHUB-web-RCE-php://input

开启题目 网页显示源代码&#xff0c;判断如果参数以 php:// 开头&#xff0c;那么执行 include 函数将参数值作为文件包含进来。否则&#xff0c;输出字符串 Hacker 。 点击下面的 phpinfo 跳转之后发现了一个 php 版本页面 使用 file 查看 php://input&#xff0c; 感觉这个…...

Python网络爬虫核心面试题

网络爬虫 1. 爬虫项目中如何处理请求失败的问题&#xff1f;2. 解释HTTP协议中的持久连接和非持久连接。3. 什么是HTTP的持久化Cookie和会话Cookie&#xff1f;4. 如何在爬虫项目中检测并处理网络抖动和丢包&#xff1f;5. 在爬虫项目中&#xff0c;如何使用HEAD请求提高效率&a…...

DSL domain specific language of Kola

How we design Kola - ApiHugKola background, Kola a consumer driver tester frameworkhttps://apihug.com/zhCN-docs/kola/003_dsl_contract Concept 在 Kola 定位中 Kola 是什么, 是致力于提供一个让相关各方都能够理解共同创造的测试框架和工具。 同时 Kola 是建立于业界…...

【RISC-V设计-05】- RISC-V处理器设计K0A之GPR

【RISC-V设计-05】- RISC-V处理器设计K0A之GPR 文章目录 【RISC-V设计-05】- RISC-V处理器设计K0A之GPR1.简介2.设计顶层3.内部结构4.端口说明5.设计代码6.总结 1.简介 通用寄存器&#xff08;General Purpose Register&#xff09;是处理器设计中的重要组成部分&#xff0c;在…...

Linux/C 高级——shell脚本

1. shell脚本基础概念 1.1概念 shell使用方式&#xff1a;手动下命令和脚本 脚本本质是一个文件&#xff0c;文件里面存放的是特定格式的指令&#xff0c;系统可以使用脚本解析器翻译或解析指令并执行&#xff08;它不需要编译&#xff09;。 shell脚本本质&#xff1a;shell命…...

SpringBoot面试题整理(1)

面试整理 前置知识 ApplicationContextInitializerApplicationListenerBeanFactoryBeanDefinitionBeanFactoryPostProcessorAwareInitializingBean/DisposableBeanBeanPostProcessor 面试题 SpringBoot启动流程IOC容器初始化流程Bean声明周期Bean循环依赖SpringMVC执行流程…...

LVS原理及实例

目录 LVS原理 LVS概念 lvs集群的类型 lvs-nat 解释 传输过程 lvs-dr 解释 传输过程 特点 lvs-tun LVS&#xff08;Linux Virtual Server&#xff09;常见的调度算法 防火墙标记&#xff08;Firewall Marking&#xff09;结合轮询调度 实战案例 lvs的nat模式配置 …...

Spring统一功能处理:拦截器、响应与异常的统一管理

目录 一.拦截器 二.统一数据返回格式 三.统一异常处理 一.拦截器 拦截器是Spring框架提供的核⼼功能之⼀&#xff0c;主要⽤来拦截⽤⼾的请求&#xff0c;在指定⽅法前后&#xff0c;根据业务需要执⾏预先设定的代码。 也就是说&#xff0c;允许开发⼈员提前预定义⼀些逻辑…...

深入理解小程序的渲染机制与性能优化策略

一、小程序的渲染机制 小程序的渲染机制主要由两部分组成&#xff1a;渲染层和逻辑层。渲染层负责页面的渲染&#xff0c;逻辑层负责处理业务逻辑和数据处理。两者通过一个安全的、高效的通信机制进行数据传输和事件通知。 渲染层&#xff1a;在渲染层&#xff0c;WXML 模板会…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

《基于Apache Flink的流处理》笔记

思维导图 1-3 章 4-7章 8-11 章 参考资料 源码&#xff1a; https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

【分享】推荐一些办公小工具

1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由&#xff1a;大部分的转换软件需要收费&#xff0c;要么功能不齐全&#xff0c;而开会员又用不了几次浪费钱&#xff0c;借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...