springBoot单参数校验全局异常抛出
2021-03-29 06:24
标签:inter loading ORC cep res except null nat alt 由于valid框架校验需要通过实体类实现,本人懒不想写那么多实体,所以捕获异常抛出与valid相同的错误提示 @Valid控制层这样写就会根据实体类的注释进行参数校验 校验框架会根据注释校验参数并给出规定好的提示如果没写 message 那么只会提示不能为空 原以为直接在控制层使用这个注释也可以实现(可达鸭发现问题并没这么简单) @Vaild 并不会校验这种直接写在控制层的校验 他大哥@Validated 该出现了 1.先在控制层加注释(其他不变) 2.这里是添加了个校验一个不通过直接不校验第二个参数的配置类(多参数也可以在控制层直接写@NotNull这类注释) 3.重点来了我们捕获 大哥 抛出的异常稍加修改返回前端,造成是同一个校验方式返回信息的错觉 比较low 通过:截取的提示内容(比较菜 cv码农) 这样就可以不用多走一层实体类直接校验参数了 贴一下效果图 @Validated 提示的也就是我们自己截取的 @Valid 提示的 我觉得吧去个空格也差不多 哈哈 至此 感谢观看 如有错误麻烦大佬提点 !!! 2020-09-04 16:43:46 springBoot单参数校验全局异常抛出 标签:inter loading ORC cep res except null nat alt 原文地址:https://www.cnblogs.com/-ccj/p/13614723.html@Configuration
public class ValidatorConfig {
// 校验一个不通过不进行下一个校验直接返回
@Bean
public Validator validator() {
LocalValidatorFactoryBean factoryBean = new LocalValidatorFactoryBean();
MessageInterpolatorFactory interpolatorFactory = new MessageInterpolatorFactory();
factoryBean.setMessageInterpolator(interpolatorFactory.getObject());
factoryBean.getValidationPropertyMap().put("hibernate.validator.fail_fast", "true");
return factoryBean;
}
}
@RestControllerAdvice
public class ExceptionHandler {
@org.springframework.web.bind.annotation.ExceptionHandler(ConstraintViolationException.class)
public Result
文章标题:springBoot单参数校验全局异常抛出
文章链接:http://soscw.com/index.php/essay/69387.html