@NotNull、@NotEmpty 和 @NotBlank 区别

@NotNull、@NotEmpty 和 @NotBlank 是 Java Bean Validation (JSR 380)

规范中定义的注解,通常用于验证对象的属性是否满足特定的条件。这些注解常用于后端验证,确保接收到的数据符合预期。

@NotNull

用途:验证一个对象是否不为null。

注意:它只能验证对象本身是否为null,而不能验证对象内部的内容是否为空。例如,对于一个字符串,@NotNull

只能确保这个字符串对象不是null,但无法确保字符串内容不是空字符串或仅包含空白字符。

@NotEmpty

用途:验证集合(如 List、Set、Map、数组等)是否非空,或者字符串是否非空(即字符串长度大于0)。

注意:对于字符串,@NotEmpty

会检查字符串长度是否大于0,但不会检查字符串是否仅包含空白字符。如果要检查字符串是否不仅非空,而且不包含仅空白字符,应使用

@NotBlank。

@NotBlank

用途:验证字符串是否不仅非空,而且至少包含一个非空白字符。 注意:@NotBlank

仅适用于字符串类型,它会检查字符串是否既非null,也非空字符串,同时至少包含一个非空白字符。 这些注解通常与 Hibernate

Validator 或其他 Bean Validation 实现一起使用,以在运行时自动验证对象的属性。如果验证失败,将抛出

ConstraintViolationException 异常,其中包含有关验证失败的详细信息。

使用这些注解可以提高代码的健壮性,减少因无效或恶意输入而导致的问题。同时,它们也有助于简化后端验证逻辑,使代码更加清晰和易于维护。

相关推荐
面朝大海,春不暖,花不开15 分钟前
自定义Spring Boot Starter的全面指南
java·spring boot·后端
得过且过的勇者y15 分钟前
Java安全点safepoint
java
夜晚回家1 小时前
「Java基本语法」代码格式与注释规范
java·开发语言
斯普信云原生组1 小时前
Docker构建自定义的镜像
java·spring cloud·docker
wangjinjin1801 小时前
使用 IntelliJ IDEA 安装通义灵码(TONGYI Lingma)插件,进行后端 Java Spring Boot 项目的用户用例生成及常见问题处理
java·spring boot·intellij-idea
wtg44521 小时前
使用 Rest-Assured 和 TestNG 进行购物车功能的 API 自动化测试
java
白宇横流学长1 小时前
基于SpringBoot实现的大创管理系统设计与实现【源码+文档】
java·spring boot·后端
fat house cat_2 小时前
【redis】线程IO模型
java·redis
stein_java3 小时前
springMVC-10验证及国际化
java·spring
weixin_478689763 小时前
C++ 对 C 的兼容性
java·c语言·c++