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; } }