똑같은 삽질은 2번 하지 말자

Spring Boot 개념다지기 No.13(ExceptionHandler ,Spring HATEOAS) 본문

Spring/Spring Boot

Spring Boot 개념다지기 No.13(ExceptionHandler ,Spring HATEOAS)

곽빵 2020. 5. 2. 17:02

스프링 @MVC 예외 처리 방법

  • @ControllerAdvice
  • @ExceptionHandler

스프링 부트가 제공하는 기본 예외 처리기

  • BasicErrorController
    • HTML과 JSON 응답 지원
  • 커스터마이징 방법
    • ErrorController 구현

HTML 기본 예외 처리는 요거

많이들 봤을거라고 생각되는데 그럼 이제부터 ErrorHandler를 커스텀해보자

@GetMapping("/error")
public String error() {
	throw new SampleException();
}
	
@ExceptionHandler(SampleException.class)
public @ResponseBody AppError sampleError(SampleException e) {
	AppError appError = new AppError();
	appError.setMessage("error.app.key");
	appError.setReason("reason");
	return appError;
}

응답본문으로 해서 (AppError는 메시지,이유를 가진 간단한 에러객체)

 

 

커스텀 에러 페이지

  • 상태 코드 값에 따라 에러 페이지 보여주기
  • src/main/resources/static|template/error/
  • 404.html
  • 5xx.html
  • ErrorViewResolver 구현

커스텀 에러페이지나 우리가 커스텀한 에러에 걸리지 않으면 BasicErrorController가 에러처리를 한다.

 

Hypermedia As The Engine Of Application State

  • 서버: 현재 리소스와 연관된 링크 정보를 클라이언트에게 제공한다.
  • 클라이언트: 연관된 링크 정보를 바탕으로 리소스에 접근한다.

ObjectMapper 제공

  • spring.jackson.*
  • Jackson2ObjectMapperBuilder

LinkDiscovers 제공

  • 클라이언트 쪽에서 링크 정보를 Rel 이름으로 찾을때 사용할 수 있는 XPath 확장 클래스

RestAPI를 고급지게? 만들어주는..?

Comments