spring-boot-starter-web 已经集成Hibernate校验框架。
1、配置类配置
@Configuration
public class ValidatorConfig{
@Bean
public static Validator validator() {
return Validation
.byProvider(HibernateValidator.class)
.configure()
//配置快速返回模式下,校验到第一个参数错误就会返回,否则全部校验完后返回
.failFast(true)
.buildValidatorFactory()
.getValidator();
}
}
2、自定义异常处理
@ExceptionHandler(value = MethodArgumentNotValidException.class)
@ResponseBody
public JsonResult argumentValidHandler(HttpServletRequest req, Exception e){
JsonResult result = new JsonResult();
List<String> errorList=new ArrayList<>();
List<ObjectError> allErrors = ((MethodArgumentNotValidException) e).getBindingResult().getAllErrors();
for (ObjectError error : allErrors) {
errorList.add(error.getDefaultMessage());
}
result.setCode(ErrorCode.ARGUMENT_NOT_VALID.getCode());
result.setMessage(StringUtils.join(errorList,"<br/>"));
return result;
}