Java에서는 예외 처리를 위해 try-catch를 사용해야 하지만 try-catch를 모든 코드에 붙이는 것은 비효율적이다.
Spring은 전역적으로 예외를 처리할 수 있는 @ControllerAdvice와 @RestControllerAdvice 어노테이션을 지원한다.
@RestControllerAdvice는 @ControllerAdvice와 달리 @ResponseBody가 붙어 있어 응답을 Json으로 내려준다는 점이 다르다.
@ControllerAdvice
@ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드에 AOP를 적용해 Controller 단에 적용하기 위해 고안된 어노테이션
@Controller에 대한 전역적으로 발생할 수 있는 예외를 처리한다.
@RestControllerAdvice
@ResponseBody + @ControllerAdvice => @RestControllerAdvice
@ControllerAdvice와 동일한 역할을 수행하고, 추가적으로 @ResponseBody를 통해 객체를 리턴할 수도 있다.
단순히 예외 처리만 하고 싶다면 @ControllerAdvice를 적용하면 되고, 응답으로 객체를 리턴해야 한다면 @RestControllerAdvice를 적용하면 된다.
'🐼백앤드 > Spring' 카테고리의 다른 글
JPA란? (0) | 2023.12.22 |
---|---|
자바 빌더 패턴이란? (2) | 2023.12.20 |
의존관계 자동 주입 (0) | 2023.12.19 |
서블릿과 멀티 쓰레드 (0) | 2023.12.19 |
SpringBoot 동작 원리 (0) | 2023.09.02 |