반응형
API 예외 처리도 스프링 부트가 제공하는 기본 오류 방식을 사용할 수 있다.
@RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse
response) {
}
@RequestMapping
public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {
}
/error 동일 경로를 처리하는 메서드 두 개를 코딩해 주었다.
errorHTML은 produces를 사용해 값을 주어 클라이언트 요청의 Accept 해더 값이 text/html인 경우 errorHtml()을 호출해 view를 제공하고 error()은 ResponseEntity로 HTTP Body에 JSON 데이터를 반환해 준다.
스프링 부트의 기본 설정은 오류 발생시 /error를 오류페이지로 요청하고 BasciErrorController는 이 경로를 기본으로 받는다.
BasicErrorController를 사용하면 4xx, 5xx를 다 처리해 주기 때문에 HTML 페이지를 제공하는 경우 매우 편리하다. 하지만 아직 사용하기엔 컨트롤러, API, 예외마다 결과가 달라질 수 있기 때문에 세밀하고 복잡해질 수 있어 불편하다. 앞으로 강의를 들으면서 점차 진화시켜 갈 예정이다.
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다.
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : HandlerExceptionResolver 활용하기 (0) | 2022.03.05 |
---|---|
[Spring Boot] : HandlerExceptionResolver 시작하기 (0) | 2022.03.04 |
[Spring Boot] : API 예외 처리 기본 체크하기 (0) | 2022.03.02 |
[Spring Boot] : BasicErrorController가 model에 담는 정보 (0) | 2022.03.01 |
[Spring Boot] : BasicErrorController 오류 페이지 (0) | 2022.02.28 |
댓글