spring使用validator不生效

其他文章说了很多遍的引包、加注解、异常拦截器以外补充一点:需要创建一个bean

@Bean
    public MethodValidationPostProcessor methodValidationPostProcessor() {
        return new MethodValidationPostProcessor();
    }

加了这个方法的类上记得加上

@Configuration
@EnableRetry
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果在 Spring Boot 使用 @Validated 注解进行参数校验不生效,一般可能出现以下几种情况: 1. 没有在 Controller 类上加上 @Validated 注解,或者加上了但是没有生效。在这种情况下,需要检查是否启用了 Spring MVC 注解处理器,可以在 application.properties 文件加上以下配置: ``` spring.mvc.validation.enabled=true ``` 2. 没有在方法参数上加上校验注解,或者加上了但是没有生效。在这种情况下,需要检查是否在方法参数前面加上了 @Valid 或者 @Validated 注解。 3. 校验注解没有起作用。在这种情况下,需要检查是否引入了正确的校验依赖。在 Spring Boot 2.x 版本,需要引入 Hibernate Validator 的依赖: ``` <dependency> <groupId>org.hibernate.validator</groupId> <artifactId>hibernate-validator</artifactId> <version>6.1.5.Final</version> </dependency> ``` 4. 在 application.properties 文件配置了开启校验,但是使用了 GET 方法请求。在 Spring MVC ,GET 方法默认不会进行校验,只有 POST 方法才会进行校验。如果需要在 GET 方法进行校验,可以在 Controller 类上加上以下注解: ``` @RequestMapping(method = {RequestMethod.GET, RequestMethod.POST}) ``` 5. 在方法参数使用了非 Spring Boot 默认的参数校验器。如果使用了非 Spring Boot 默认的参数校验器,需要在 pom.xml 文件引入对应的校验依赖,并在方法参数上使用对应的校验注解。例如,如果使用了 jodd-validator,可以在 pom.xml 文件添加以下依赖: ``` <dependency> <groupId>org.jodd</groupId> <artifactId>jodd-validator</artifactId> <version>5.0.11</version> </dependency> ``` 然后在方法参数上使用 jodd-validator 提供的校验注解,例如 @Min、@Max、@Length 等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值