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
- apache thrift
- Spring Security OAuth
- spring security
- spring
- spring cloud
- 데브툴즈
- 인텔리J
- spring-mybatis
- OAuth 2.0
- Spring MVC
- spring boot mybatis
- 스프링
- OAuth2.0
- devtools
- spring boot 1.3
- 스프링시큐리티
- KSUG
- elasticache
- WebApplicationInitializer
- 스프링 부트
- spring cloud config
- Spring Boot
- @MVC
- ServletContextInitializer
- Multi DataSource
- mybatis
- Fiilter
- spring boot devtools
- spring test mvc
- spring camp
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 인터페이스를 구현하면 기본 예외처리가 중지 되면서 확장 가능