为了避免重复的if判断参数,记一次使用Validation来做参数校验
使用@Validated进行校验,并对异常进行处理
/**
* @author ginwu
* @since 2020/8/1
*/
@RestController
@RequestMapping("/v")
@Validated
public class TestController {
@GetMapping("/t1")
public String test1(@NotEmpty(message = "参数不能为空") String name) {
return name;
}
}
对ConstraintViolationException进行全局处理,并调用getConstraintViolations或者toString方法对结果进行处理
@ControllerAdvice
@Order(-1)
public class GlobalExceptionHandler {
@ExceptionHandler(ConstraintViolationException.class)
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody
public Set<String> handleValidationExceptions(ConstraintViolationException ex) {
Set<ConstraintViolation<?>> constraintViolations = ex.getConstraintViolations();