Spring boot 自动配置与注入 MethodValidationPostProcessor
只需要在需要验证的类上注解 @Validated
并通过捕获 ConstraintViolationException 异常,处理后续提示消息等
@RestController
@Validated
public class UserApi {
@GetMapping("/get")
MarketCat get(@NotNull(message="缺少参数uid") String uid) {
return userSvc.getUser(uid);
}
@Resource
private UserSvc userSvc;
}
异常处理
@ControllerAdvice
public class GlobalExceptionHandler {
@ResponseBody
@ExceptionHandler(ConstraintViolationException.class)
public String handleApiConstraintViolationException(ConstraintViolationException ex) {
String message = "";
Set<ConstraintViolation<?>> violations = ex.getConstraintViolations();
for (ConstraintViolation<?> violation : violations) {
message += violation.getMessage() + ", ";
}
return message;
}
}
本文介绍如何在SpringBoot中使用@Validated进行方法参数校验,并通过MethodValidationPostProcessor实现异常处理。当方法参数不符合预设规则时,将抛出ConstraintViolationException异常并返回错误信息。
924

被折叠的 条评论
为什么被折叠?



