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 |
Tags
- spring boot mybatis
- spring camp
- elasticache
- 스프링 부트
- 스프링
- spring test mvc
- Fiilter
- spring boot devtools
- spring cloud config
- @MVC
- KSUG
- 인텔리J
- ServletContextInitializer
- Spring MVC
- OAuth 2.0
- Spring Security OAuth
- 데브툴즈
- mybatis
- WebApplicationInitializer
- 스프링시큐리티
- spring security
- spring cloud
- Spring Boot
- spring boot 1.3
- spring-mybatis
- apache thrift
- devtools
- Multi DataSource
- spring
- OAuth2.0
Archives
- Today
- Total
홍이의 개발 노트
Spring Boot의 기본적인 Error처리 본문
- 관련 클래스: org.springframework.boot.autoconfigure.web.BasicErrorController
- 스프링 부트에서 예외 사항이 발견되면 따로 처리 하는 부분이 존재하지 않으면 이 클래스에서 대부분의 예외를 처리한다.
- 특수한 예외를 제외
- 기본 기능
- 컨텐츠 타입이 text/html 형태 즉 브라우저에서 페이지로 요청 했을 때 에러가 발생하면 페이지로 보인다.
- 기본 페이지
- org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration 에서 defaultErrorView 확인
- 해당 페이지 부분을 커스텀방법
- Bean이름이 "error" 이름으로 View 를 리턴하는 방법 ( 예: @Bean(name=error) ... )
- 벨로시티(velocity) 및 핸들바즈 등 템플릿 엔진을 사용하면 “error" view를 찾는다.
- application.properties (또는 yml )
- server.error.path 이 속성에서 직접 URI를 지정하여 직접 매핑한다.
- 기본속성은 "/error"
- model에 예외 속성값을 들어가 있다.
- timestamp
- error
- status
- message
- ...
- 기본 페이지
- 그 이외에 예외가 발생하면 @ResponseBody 형태로 리턴 한다. ( json, xml 등 )
- 컨텐츠 타입이 text/html 형태 즉 브라우저에서 페이지로 요청 했을 때 에러가 발생하면 페이지로 보인다.
- 기본 예외처리 비활성화
- org.springframework.boot.autoconfigure.web.ErrorController 인터페이스를 상속 받은 Bean이 존재하면 비활성화 처리 된다.
- Error 처리 확장
- org.springframework.boot.autoconfigure.web.ErrorController 인터페이스를 구현하면 기본 예외처리가 중지 되면서 확장 가능
- 또는 org.springframework.boot.autoconfigure.web.AbstractErrorController, BasicErrorController 등을 상속 받아서 확장가능
- Error 속성정보만 확장 하기 위해서는 org.springframework.boot.autoconfigure.web.DefaultErrorAttributes를 참고해서 확장하면 된다.
- 기본적으로 ErrorAttributes 인터페이스를 확인
- org.springframework.boot.autoconfigure.web.ErrorController 인터페이스를 구현하면 기본 예외처리가 중지 되면서 확장 가능