ControllerAdviceを使用してRuntimeExceptionをスローしたとき、およびクライアントエラーを処理するために手動でResponseEntityを返すときに、スピードの違いはありますか?ControllerAdviceは応答時間を延長しますか?
1)ControllerAdvice
@RestController
public class ObjectController {
@PostMapping
public Object save(@RequestBody Object object) {
if (service.isInvalid(object))
throw new ObjectException("Client error");
return service.save(object);
}
}
public class ObjectException extends RuntimeException {
}
@ControllerAdvice
public class ObjectControllerAdvice extends ResponseEntityExceptionHandler {
@ExceptionHandler(value = {ObjectException.class})
protected ResponseEntity<Object> handleConflict(ObjectException ex, WebRequest request) {
return handleExceptionInternal(ex, ex.getLocalizedMessage(), new HttpHeaders(),
HttpStatus.BAD_REQUEST, request);
}
}
2)手動I違いを想像ResponseEntity
@RestController
public class ObjectController {
@PostMapping
public ResponseEntity<Object> save(@RequestBody Object object) {
if (service.isInvalid(object))
return new ResponseEntity<>("Client error", HttpStatus.BAD_REQUEST);
return new ResponseEntity<Object>(service.save(object), HttpStatus.OK);
}
}