在Spring Boot中使用 spring-boot-starter-validation 非常简单,只需在Controller中的需要验证的参数上添加@Validated注解即可。

示例代码:

@RestController
@RequestMapping("/users")
@Validated // 添加@Validated注解
public class UserController {

    @PostMapping
    public ResponseEntity<User> createUser(@Valid @RequestBody User user) {
        // 处理创建用户请求
        return ResponseEntity.ok(user);
    }
}

在上面的示例中,我们在 createUser() 方法的参数上添加了@Valid注解,表示需要验证该参数。我们还在类级别上添加了@Validated注解,以启用参数验证。

当请求到达Controller时,Spring会自动验证请求体中的参数是否满足要求。如果不满足要求,将会抛出MethodArgumentNotValidException异常,我们可以使用@ExceptionHandler注解来处理该异常。

示例代码:

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<ErrorResponse> handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
        BindingResult bindingResult = ex.getBindingResult();
        List<FieldError> fieldErrors = bindingResult.getFieldErrors();

        ErrorResponse errorResponse = new ErrorResponse();

        for (FieldError fieldError : fieldErrors) {
            errorResponse.addError(fieldError.getField(), fieldError.getDefaultMessage());
        }

        return ResponseEntity.badRequest().body(errorResponse);
    }
}

上面的示例代码中,我们定义了一个全局的异常处理器,处理MethodArgumentNotValidException异常,并将错误信息封装到ErrorResponse中返回给客户端。

spring-boot-starter-validation 在controller中如何使用

原文地址: https://www.cveoy.top/t/topic/bqmt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录