@ControllerAdvice에서 사용하는 요소는 다음과 같습니다.
▼ 표 10-5 @ControllerAdvice에서 사용하는 요소
요소 |
타입 |
설명 |
annotations |
Class<? extends Annotation>[] |
애너테이션의 배열입니다. |
assignableTypes |
Class<?>[] |
클래스의 배열입니다. |
basePackageClasses |
Class<?>[] |
@ControllerAdvice가 적용된 클래스가 지원할 컨트롤러를 선택할 수 있는 패키지를 지정합니다. |
basePackages |
String[] |
기본 패키지의 배열입니다. |
value |
String[] |
basePackages 속성의 별칭입니다. |
@ControllerAdvice를 선언한 클래스에서는 컨트롤러에서 설정하는 @ExceptionHandler, @ModelAttribute, @InitBinder가 선언된 메서드를 사용할 수 있습니다.
다음은 @ControllerAdvice를 선언한 클래스 안의 예외 처리를 위한 메서드에 @ExceptionHandler를 설정한 예입니다. 여기에서 @ControllerAdvice를 선언한 클래스 안에는 @ExceptionHandler가 선언된 메서드를 여러 개 설정할 수 있고, 예외가 발생하면 어떤 예외 처리를 할지 value 옵션 요소에 설정해 주면 됩니다.