第一步:依赖
<!--数据有效性校验-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
第二步:配置文件
@Configuration
public class HibernateValidatorConfig {
@Bean
public static Validator validator() {
return Validation.byProvider(HibernateValidator.class)
.configure()
// 开启快速校验(不校验所有参数,只要出现校验失败情况直接返回,不再进行后续参数校验),默认校验所有参数,false校验全部
.failFast(true)
.buildValidatorFactory()
.getValidator();
}
}
第三步:全局异常处理
@RestControllerAdvice
public class GlobalExceptionHandler {
/**
* Hibernate validator 参数校验异常
*
* @param ex
* @return
*/
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResultBean<String> validationErrorHandler(MethodArgumentNotValidException ex) {
// 同样是获取BindingResult对象,然后获取其中的错误信息
// 如果前面开启了fail_fast,事实上这里只会有一个信息
//如果没有,则可能又多个
List<String> errorInformation = ex.getBindingResult().getAllErrors()
.stream()
.map(ObjectError::getDefaultMessage)
.collect(Collectors.toList());
return ResultBeanUtil.error("").setMsg(errorInformation.toString());
}
}
第四步:
@Getter
@Setter
@ToString
public class AdminLoginDTO {
@NotBlank(message = "账户不能为空")
@Size(min = 6, max = 32)
private String account;
@NotBlank(message = "密码不能为空")
@Size(min = 6, max = 32)
private String password;
}
第五步:
@PostMapping("/v1/login")
public ResultBean<SaTokenInfo> login(@RequestBody @Valid AdminLoginDTO adminLoginDTO) {
}
文章来源地址https://www.toymoban.com/news/detail-823349.html
文章来源:https://www.toymoban.com/news/detail-823349.html
到了这里,关于Springboot整合hibernate validator 全局异常处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!