일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Spring
- 보험금 지급거절
- Gamsgo
- 코드스테이츠 합격
- CodeState 후기
- 코드 스테이츠 백엔드 교육과정
- Java
- 코드스테이츠 부트캠프 합격 후기
- 백내장
- 해시
- Code States 백엔드 합격 후기
- 겜스고
- codestates 국비지원 1기 합격 후기
- 백내장 금감원
- 금감원 백내장 민원
- 자바
- 금감원
- 에이치엘비
- HLB
- 코드스테이츠 부트캠프
- 백내장 다초점렌즈 삽입술
- 금융감독원
- 백준 알고리즘
- 코드스테이츠 백엔드 교육과정
- 금융감독원 민원신청
- 코드스테이츠 백엔드 후기
- 코드스테이츠 백엔드 부트캠프 합격
- 코드스테이츠 합격 후기
- 메서드
- 코테 합격후기
Archives
- Today
- Total
개발하는 동그리
@RestControllerAdvice & @ControllerAdvice 본문
반응형
@ControllerAdvice와 @RestControllerAdvice는 모두 Spring에서 예외를 처리하기 위해 사용되는 어노테이션
주로 반환하는 데이터 형식과 관련된 차이가 있습니다. 이를 통해 예외 처리 방식에 조금 다른 동작을 할 수 있습니다.
@ControllerAdvice
- 용도: @ControllerAdvice는 일반적으로 @Controller에서 발생하는 예외를 처리하는 데 사용됩니다.
- 특징:
- @ControllerAdvice는 뷰 템플릿 (예: JSP, Thymeleaf)을 사용하는 웹 애플리케이션에서 주로 사용됩니다.
- @ControllerAdvice는 예외 처리 메서드에서 반환되는 객체가 뷰 이름이나 ModelAndView일 수 있다는 점을 고려합니다.
- 보통 @ResponseBody가 명시되지 않은 경우, 반환 값이 뷰 이름으로 해석되어 템플릿 엔진을 통해 렌더링됩니다.
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception e) {
ModelAndView modelAndView = new ModelAndView("error");
modelAndView.addObject("message", e.getMessage());
return modelAndView;
}
}
@RestControllerAdvice
- 용도: @RestControllerAdvice는 RESTful 웹 서비스에서 예외를 처리하는 데 사용됩니다.
- 특징:
- @RestControllerAdvice는 REST API에서 발생하는 예외를 처리하는 데 사용됩니다.
- @RestControllerAdvice는 **@ResponseBody**를 포함하고 있기 때문에, 예외 처리 메서드에서 반환되는 객체는 자동으로 JSON 형식으로 응답됩니다.
- @RestControllerAdvice는 반환 값을 JSON이나 XML 형태로 처리하여 클라이언트에 전달합니다.
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public ErrorResponse handleException(Exception e) {
return new ErrorResponse("Error", e.getMessage());
}
}
차이점 요약
주요 사용처 | 일반적인 MVC 기반 웹 애플리케이션 | RESTful API 서비스 |
응답 형식 | 뷰 템플릿으로 렌더링 (예: JSP, Thymeleaf) | JSON 또는 XML (자동 @ResponseBody) |
특징 | @ResponseBody가 필요하지 않음 | 자동으로 @ResponseBody가 적용됨 |
따라서 일반적인 경우라면, @RestControllerAdvice를 사용하는 것이 좋을 것 같음.
반응형
'IT 정보 > Spring' 카테고리의 다른 글
OSI 7계층 / CIA / RSA / RFC 규칙 / JWT (4) | 2022.08.29 |
---|---|
[Test] Slice Test (Data Access 계층) (2) | 2022.08.18 |
[Test] Slice Test (API 계층) (2) | 2022.08.18 |
[Spring] application.yml 설정 (1) | 2022.08.18 |
[Spring] build.gradle 설정 (0) | 2022.08.18 |