spring-boot-starter-validation 在controller中如何使用
在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中返回给客户端。
原文地址: https://www.cveoy.top/t/topic/bqmt 著作权归作者所有。请勿转载和采集!