ControllerAdvice와 RestControllerAdvice
spring은 전역적으로 예외처리 할 수 있는 @ControllerAdvice와 @RestControllerAdvice어노테이션을 각각 spring 3.2, Sprong 4.3부터 제공하고 있다
두 개의 차이는 controller와 RestController와 같은데,
RestControllerAdvice는 ControllerAdvice와 달리 @ResponseBody가 붙어있어 응답 Json으로 내려준다는 점에서 다르다
@RestControllerAdvice
public class CustomControllerAdvice {
@ExceptionHandler(NoSuchElementException.class)
public ResponseEntity<?> noExist(NoSuchElementException e){
// HTTP 상태 코드 404(NOT_FOUND)를 반환하고, 예외 메시지를 포함하는 응답을 반환
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Map.of("msg", e.getMessage()));
}
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<?> noExist(MethodArgumentNotValidException e){
// HTTP 상태 코드 406(NOT_ACCEPTABLE)를 반환하고, 예외 메시지를 포함하는 응답을 반환
return ResponseEntity.status(HttpStatus.NOT_ACCEPTABLE).body(Map.of("msg", e.getMessage()));
}
}
'Spring Boot' 카테고리의 다른 글
[Spring Boot] QueryDSL이란? (1) | 2024.05.22 |
---|---|
[Spring Boot] file업로드 (0) | 2024.05.21 |
[Spring Boot] @Component 어노테이션 (0) | 2024.05.20 |
[Spring Boot] @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor (0) | 2024.05.15 |
[Spring Boot] Spring JPA + Query DSL (0) | 2024.05.13 |