Spring boot

2024.10.11 Blog 프로젝트 만들기(JPA) 에러 페이지 만들기

정훈5 2024. 10. 11. 09:26

 

학습 목표

  • 스프링 부트의 에러 처리 메커니즘 이해
    스프링 부트에서 제공하는 기본 에러 처리 방식과 커스터마이징 방법을 이해한다.

  • Mustache 템플릿을 활용한 에러 페이지 구현
    다양한 HTTP 상태 코드에 맞는 사용자 정의 에러 페이지를 Mustache 템플릿을 사용하여 구현한다.

스프링 부트는 기본적으로 BasicErrorController를 통해 애플리케이션에서 발생하는 에러를 처리합니다.

이 컨트롤러는 /error 경로로 모든 에러를 매핑하며, 에러 발생 시 적절한 에러 페이지를 렌더링합니다.

그러나 기본 제공되는 에러 페이지는 단순한 텍스트 형태로 제공되기 때문에, 추가적인 가공 작업이 필요 합니다.

 

에러 페이지 매핑 설정

스프링 부트는 기본적으로 /error 경로를 통해 에러를 처리합니다.

application.properties 파일을 통해 커스터마이징된 에러 페이지를 적용할 수 있습니다.

 

 

 

 

 

400.mustache

{{> layout/header}}

<h1>BadRequest 400</h1>
<hr>
<h4>{{msg}}</h4>

{{> layout/footer}}

 

 

401.mustache

{{> layout/header}}

<h1>Unauthorized Request 401</h1>
<hr>
<h4>{{msg}}</h4>

{{> layout/footer}}

 

403.mustache

{{> layout/header}}

<h1>Forbidden 403</h1>
<hr>
<h4>{{msg}}</h4>

{{> layout/footer}}

 

404.mustache

{{> layout/header}}

<h1>Not Found 404</h1>
<hr>
<h4>{{msg}}</h4>

{{> layout/footer}}

 

500.mustache

{{> layout/header}}

<h1>ServerError 500</h1>
<hr>
<h4>{{msg}}</h4>

{{> layout/footer}}

 

 

application-dev.yml 에서 error 추

server:
  servlet:
    encoding:
      charset: utf-8         # ?? ? ??? UTF-8 ???? ???? ?? ? ????? ??? ??? ??
      force: true            # ??? UTF-8 ???? ??, ?????? ?? ???? ?????? ???? UTF-8? ??
  port: 8080                 # ??? 8080 ???? ????? ??
  
  error:
    whitelable:
      enabled: true # 뷰 렌더링 오류 활성화 여부