Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 그리디
- http
- AOP
- 알고리즘
- Thymeleaf
- pointcut
- 스프링 핵심 기능
- Proxy
- 인프런
- JDBC
- 백준
- Spring Boot
- 스프링 핵심 원리
- JPQL
- 자바
- springdatajpa
- 스프링
- SpringBoot
- db
- Exception
- jpa
- QueryDSL
- transaction
- java
- Greedy
- 김영한
- kotlin
- Servlet
- Android
Archives
- Today
- Total
개발자되기 프로젝트
[API예외] SpringBoot 기본 오류 처리 본문
API예외 처리는 SpringBoot의 기본 오류 처리 방식을 사용할 수 있음.
1. BasicErrorController
- SpringBoot가 제공하는 기본 ErrorController
@Controller
@RequestMapping("${server.error.path:${error.path:/error}}")
public class BasicErrorController extends AbstractErrorController {
@RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
public ModelAndView errorHtml(HttpServletRequest request, HttpServletResponse response) {}
@RequestMapping
public ResponseEntity<Map<String, Object>> error(HttpServletRequest request) {}
}
- /error 동일한 경로를 처리하는 errorHtml() , error() 두 메서드가 있다.
- errorHtml() : produces = MediaType.TEXT_HTML_VALUE :
- 클라이언트 요청의 Accept 해더 값이 text/html 인 경우에는 errorHtml() 을 호출해서 view 제공.
- error() : 그외 경우에 호출되고 ResponseEntity 로 HTTP Body에 JSON 데이터를 반환한다.
2. SpringBoot의 예외처리
- 스프링 부트의 기본 설정은 오류 발생시 /error 를 오류 페이지로 요청!!
- BasicErrorController 는 이 경로를 기본으로 받는다.
- ( server.error.path 로 수정 가능, 기본 경로 / error )
3. 오류 정보 옵션
- server.error.include-binding-errors=always
server.error.include-exception=true
server.error.include-message=always
server.error.include-stacktrace=always - 외부에 노출하지 말고 !!!!! 로그로만..
4. Html 페이지 vs API 오류
- BasicErrorController 를 확장하면 JSON 메시지도 변경할 수 있다.
- 하지만 @ExceptionHandler 가 제공하는 기능을 사용하는 것이 더 좋음.
- BasicErrorController 를 확장해서 JSON 오류 메시지를 변경 할 수 는 있다.. .
- BasicErrorController 는 HTML 페이지를 제공하는 경우에는 굉장히 편리함.
- 하지만 API는 , 각 컨트롤러나 예외마다 서로 다른 응답 결과를 출력해야 할 수 도 있음.
- HTML 오류 페이지 : BasicErrorController 사용
- API 오류 처리 : @ExceptionHandler
'인프런 > [인프런] 스프링 MVC 2' 카테고리의 다른 글
[API예외] HandlerExceptionResolver 활용 (0) | 2021.09.28 |
---|---|
[API예외] HandlerExceptionResolver (0) | 2021.09.28 |
[API예외] API 예외처리 (0) | 2021.09.28 |
[예외] SpringBoot - BasicErrorController (0) | 2021.09.27 |
[예외] SpringBoot - 오류페이지 (0) | 2021.09.27 |
Comments