728x90
SMALL
스프링에는 전역 예외처리를 해주는 방법으로 여러가지 방법을 제공한다. 그중 어노테이션으로 처리하는 방법을 알아보려고 한다. @RestControllerAdvice, @ControllerAdvice 이 두 개의 어노테이션은 같은 방식으로 에러를 처리하는 어노테이션이다 다만 두 개의 어노테이션 차이로는 @RestControllerAdvice = @ControllerAdvice + @ResponseBody 로 볼수가 있다.
@ControllerAdvice란?
@ExceptionHandler, @ModelAttribute, @InitBinder 가 적용된 메서드들을 AOP를 적용해 컨트롤러 단에 적용하기 위해 고안된 어노테이션이다.
@RestControllerAdvice란?
@RestControllerAdvice = @ControllerAdvice + @ResponseBody 로 예외처리후 조건에 맞는 응답을 json으로 사용자 화면에 출력해준다.
@RestControllerAdvice
@Slf4j
public class GlobalExceptionHandler {
// 컨트롤러 전역에서 발생하는 예외를 잡아 Throw 해준다.
@ExceptionHandler(RuntimeException.class)
public String handleRuntimeException(final RuntimeException e) {
log.error("handleRuntimeException : {}", e.getMessage());
return e.getMessage();
}
}
위와 같이 어노테이션을 사용함으로서 예외에 대한 조건이 발생하면 해당 메소드를 발생시켜 예외 처리를 할 수 있다. 상황에 따라 json으로 응답도 가능하며 @RestControllerAdvice(basePackages = EditController.class), @RestControllerAdvice(basePackages = "con.app.test.controller") 식으로 범위를 클래스나 패키지 단위로 제한할수도 있다.
참고
728x90
LIST
'WEB > Spring' 카테고리의 다른 글
Spring Boot로 MSA 개발하기 (5) | 2024.08.30 |
---|---|
스프링 IOC컨테이너 - DI, DL (0) | 2024.03.23 |
스프링에서 Service ServiceImpl 사용하는 이유 (0) | 2024.03.23 |
자바)Reflection 사용한 동적 메소드 호출 (0) | 2024.03.23 |
스프링-static field에 의존성 주입하여 DAO 사용하기 (0) | 2024.03.23 |