@NotBlank、@NotNull、@NotEmpty已废弃,可用替代新注解是什么?
替代@NotBlank、@NotNull、@NotEmpty的注解方案
你提到的这些注解被废弃,大多是因为Java EE迁移到Jakarta EE后,原javax.validation.constraints包下的校验注解被标记为过时,直接用**jakarta.validation.constraints包下的同名注解**就能完全替代,功能和用法没有任何变化:
@NotNull:校验对象不能为null,但允许空字符串、空集合这类"非null但空"的情况@NotEmpty:针对集合、数组、字符串,校验不能为null且长度/元素数量大于0@NotBlank:仅用于字符串,校验不能为null,且去除首尾空格后的长度大于0
补充场景
如果是Spring Boot 3.x+项目,引入spring-boot-starter-validation依赖后,默认就支持Jakarta Validation的注解,直接替换包路径即可。
要是遇到其他自定义注解废弃的情况,也可以基于基础注解组合实现:
- 替代
@NotBlank:用@NotNull+@Pattern(regexp = "\\S+")组合 - 替代
@NotEmpty:用@NotNull+@Size(min = 1)组合
内容的提问来源于stack exchange,提问作者Vivek Pal
相关产品推荐
相关产品推荐

