Spring Boot 2.7.2验证功能失效,添加@NotNull注解报错求助
解决Spring Boot 2.7.2验证功能及@NotNull注解问题
1. 确认依赖有效性
你添加的spring-boot-starter-validation依赖是正确的,这个starter已经包含了Spring Validation所需的所有核心组件(包括Hibernate Validator实现),无需额外引入Hibernate相关验证依赖。先执行mvn clean install刷新本地依赖,确保依赖包完整下载。
2. 修正注解导入包
提示“不存在@NonNull注解”大概率是导包错误:
- 验证用的
@NotNull属于javax.validation.constraints包(Spring Boot 2.7.x仍基于javax.validation规范,3.0+版本才迁移到jakarta),正确导入语句为:import javax.validation.constraints.NotNull; - 避免误导入
lombok.NonNull或其他第三方包的同名注解,这些注解不具备Spring验证的功能。
3. 启用验证触发逻辑
仅在Bean字段上加注解不会自动触发验证,需要在对应层添加触发注解:
- Controller层:在请求体参数前添加
@Valid或@Validated,示例:@PostMapping("/submit") public String handleSubmit(@Valid @RequestBody YourBean bean) { // 业务逻辑 return "success"; } - Service层:在类上添加
@Validated注解,方法参数或字段的验证注解才会生效。
4. 排查依赖冲突
如果上述步骤无效,执行mvn dependency:tree查看依赖树,检查是否存在旧版本的javax.validation-api或Hibernate Validator依赖冲突,如有则排除冲突的依赖项。
内容的提问来源于stack exchange,提问作者zizo 04
相关产品推荐
相关产品推荐

