Performance: Validation error responses
MEDIUM IMPACT
This concept affects the server response time and client rendering speed when validation errors occur.
@RestControllerAdvice public class ValidationExceptionHandler { @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity<Map<String, String>> handleValidationExceptions(MethodArgumentNotValidException ex) { Map<String, String> errors = ex.getBindingResult().getFieldErrors().stream() .collect(Collectors.toMap(FieldError::getField, FieldError::getDefaultMessage, (existing, replacement) -> existing)); return ResponseEntity.badRequest().body(errors); } } // Controller method public ResponseEntity<User> createUser(@Valid @RequestBody User user) { userService.save(user); return ResponseEntity.ok(user); }
public ResponseEntity<?> createUser(@Valid @RequestBody User user, BindingResult result) {
if (result.hasErrors()) {
List<String> errors = new ArrayList<>();
for (FieldError error : result.getFieldErrors()) {
errors.add(error.getDefaultMessage());
}
return ResponseEntity.badRequest().body(errors);
}
userService.save(user);
return ResponseEntity.ok(user);
}| Pattern | CPU Usage | Response Time | Payload Size | Verdict |
|---|---|---|---|---|
| Manual error aggregation in controller | High (loops per request) | Higher (extra processing) | Medium (list of messages) | [X] Bad |
| Centralized exception handler with streams | Low (stream optimized) | Lower (less CPU work) | Low (map of field-errors) | [OK] Good |