添加spring-boot-starter-validation依赖致项目异常,无依赖时@NotBlank是否生效?
关于未引入spring-boot-starter-validation时@NotBlank注解是否生效的解答
未引入
spring-boot-starter-validation依赖时,@NotBlank注解完全没有校验作用
javax.validation.constraints包下的注解只是标记性元数据,本身不包含任何校验逻辑。必须搭配验证框架(比如Hibernate Validator,它是spring-boot-starter-validation的核心依赖),才能触发对字段的非空校验。之前项目里的@NotBlank只是空的标记,不会对字段值做任何检查。引入依赖后测试失败的核心原因
之前的测试用例是基于“无校验逻辑”的场景编写的——虽然POJO加了@NotBlank,但实际运行时不会拦截空值,所以传入空参数的测试也能通过。引入依赖后,Spring Boot会自动启用校验机制,当@Valid或@Validated触发校验时,不符合@NotBlank约束的参数会抛出ConstraintViolationException,直接导致原本通过的测试失败。可行的修复方向
- 修正测试用例:确保所有测试传入的参数符合
@NotBlank的约束要求,比如给必填字段传入非空值。 - 清理无效注解:如果部分
@NotBlank是历史遗留的错误标记,评估业务需求后删除或替换为合适的校验注解。 - 控制校验范围:如果不需要全局启用校验,可以通过配置或仅在特定方法/接口上使用
@Validated来缩小校验触发的场景。
- 修正测试用例:确保所有测试传入的参数符合
内容的提问来源于stack exchange,提问作者dataman
相关产品推荐
相关产品推荐

