Junior — Middle
Можете ли да обясните предназначението и използването на анотацията @ControllerAdvice в Spring?
sobes.tech AI
Отговор от AI
Аннотация @ControllerAdvice в Spring используется для глобальной обработки исключений, настройки данных модели и перехвата запросов во всех контроллерах приложения. Это позволяет централизованно обрабатывать ошибки и применять общие настройки, не дублируя код в каждом контроллере.
Например, с помощью @ControllerAdvice можно определить метод, который будет обрабатывать исключения типа Exception во всех контроллерах:
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleAllExceptions(Exception ex) {
return new ResponseEntity<>("Произошла ошибка: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Таким образом, при возникновении исключения в любом контроллере, этот метод будет вызван автоматически, обеспечивая единообразную обработку ошибок.