You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot项目中@NotNull与@NotBlank注解失效问题求助

解决Spring Boot中@NotNull/@NotBlank注解不生效的问题

核心问题定位

Spring Boot 3.x 基于 Jakarta EE 9 规范,原有的 javax.validation 包已迁移至 jakarta.validation,你当前使用的注解和@Valid仍为旧的javax包,这是校验不生效的核心原因。

具体修复步骤

1. 清理冗余依赖

spring-boot-starter-validation 已包含适配Spring Boot版本的Hibernate Validator,无需单独引入hibernate-validator依赖,避免版本冲突。删除以下依赖代码:

<dependency>
   <groupId>org.hibernate.validator</groupId> 
   <artifactId>hibernate-validator</artifactId> 
   <version>8.0.0.Final</version>
</dependency>

2. 替换校验包为Jakarta版本

  • 实体类注解替换:将javax.validation.constraints替换为jakarta.validation.constraints
    import jakarta.validation.constraints.NotBlank;
    import jakarta.validation.constraints.NotNull;
    
    public class YourEntity {
        @NotNull(message = "name can't be null")
        @NotBlank(message = "name can't be empty")
        private String name;
        // 其他字段、getter/setter方法
    }
    
  • 控制器@Valid替换:将javax.validation.Valid替换为jakarta.validation.Valid
    import jakarta.validation.Valid;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class YourController {
        @PostMapping("/submit")
        public String submit(@RequestBody @Valid YourEntity entity) {
            // 业务逻辑实现
            return "success";
        }
    }
    

3. 捕获校验错误(可选)

如需自定义错误返回格式,可在控制器方法中添加BindingResult参数处理校验结果:

@PostMapping("/submit")
public String submit(@RequestBody @Valid YourEntity entity, BindingResult result) {
    if (result.hasErrors()) {
        return result.getAllErrors().stream()
                .map(error -> error.getDefaultMessage())
                .collect(Collectors.joining("; "));
    }
    return "success";
}

4. 保持Spring Boot版本一致性

确保项目中所有Spring Boot Starter依赖的版本与spring-boot-starter-validation的3.0.4一致,避免版本不兼容问题。

内容的提问来源于stack exchange,提问作者BertDR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 04:29:57