ControllerAdvice


@ControllerAdvice

@ExceptionHandler 를 사용해서 예외를 깔끔하게 처리할 수 있게 되었지만,

정상 코드와 예외 처리 코드가 하나의 컨트롤러에 섞여 있다.

이 둘을 분리하기 위해서는 @ControllerAdvice@RestControllerAdvice 를 사용하면 된다.

@ControllerAdvice@RestControllerAdvice 조합하면 예외를 깔끔하게 해결할 수 있다.


대상 컨트롤러 지정 방법1 - 애노테이션

@RestControllerAdvice(annotation = RestController.class)
public class ExControllerAdvice {...}


대상 컨트롤러 지정 방법2 - 패키지명 (주로 많이 사용)

@RestControllerAdvice("org.example.controllers")
public class ExControllerAdvice {...}


대상 컨트롤러 지정 방법3 - 컨트롤러명

@RestControllerAdvice(assignableTypes = {ControllerV1.class, ControllerV2.class})
public class ExControllerAdvice {...}