본 글은 Spring 4.3.12의 레퍼런스 문서 에서 @ControllerAdvice
와 @ExceptionHandler
관련 부분을 번역한 글입니다. 부족한 해석이 있다면 피드백 부탁드리겠습니다.
Advising controllers with @ControllerAdvice and @RestControllerAdvice
@ControllerAdvice
애노테이션은 클래스패스 스캐닝을 통해서 자동으로 검출되어지는 구현 클래스를 허용하는 컴포넌트 애노테이션이다. MVC 네임스페이스와 MVC 자바 설정을 사용하면 자동으로 활성화된다.@ControllerAdvice
선언이 되어 있는 클래스는 @ExceptionHandler
와 @InitBinder
, @ModelAttribute
가 선언된 메소드들을 포함한다. 그리고 이 메소드들은 자신들이 선언되어 있는 컨트롤러 계층 구조와는 반대 방향으로 @RequestMapping
메소드들에 적용될 것이다.
기본적으로 @RestControllerAdvice
는 @ExceptionHandler
메소드가 @ResponseBody
로 결과를 반환하고자 하는 곳에 대신 사용할 수 있다.@ControllerAdvice
와 @RestControllerAdvice
둘 다 컨트롤러들 중에서 일부만 대상으로 삼을 수 있다.