728x90
스프링부트 어플리케이션 실행 시 뜨는 로그 분석
추가한 의존성
- Spring Web: 가장 기본적으로 Spring MVC 기반의 REST API 혹은 웹 페이지 반환을 위한 Tomcat서버
- Lombok: 불 필요한 Java 코드 작성을 최소화하기 위한 어노테이션 기반 코드 자동 생성기
- Thymeleaf: Spring 에서 웹 페이지를 만들어 클라이언트에게 서빙하려 사용하는 서버사이드 템플릿 엔진
Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext (2가지 존재)
- Servlet (Web) Applicationcontext: 서블릿에서만 이용되는 Bean 에 대한 Context
- DispatcherServlet이 직접 사용하는 컨트롤러를 포함한 웹 관련 Bean 등록
- @Controller, HandlerMapping 등
- ServletWebServerApplicationContxt: Root WebApplicationContext: initialization
- Root (Web)Applicationcontext: 이름 그대로 어디에서든 필요한 Bean 에 대한 Context
- 서비스 계층이나 DAO를 포함한 웹 환경에 독립적인 Bean 등록
- Root (Web)Applicationcontext: 이름 그대로 어디에서든 필요한 Bean 에 대한 Context
Whitelabel Error Page
오류에 대해 Tomcat 자체 제공하는 페이지 (404 Not Found 등 여러 오류들)
- 톰캣(Spring Boot) 서버가 뜨는 것과
- http://localhost:8080/ 으로 접속했을 때 웹 페이지가 뜨는건 별개
Spring MVC을 통해 웹 페이지 반환 / 제공
Spring Boot 를 통해 띄운 웹 어플리케이션 서버(WAS)에서 웹 페이지를 반환하려면 2개만 신경쓰면 된다.
- 웹 어플리케이션 서버(WAS)에서 "어떤 요청을 받았을 때" 웹 페이지를 반환할 것인가?
- 이를 Controller라고 하고, 어떤 REST API(Method + URL) 요청을 받았을 때 처리할지 정의
- 어떤 웹페이지를 반환할 것인가?
- 이를 view라고 하고, 어떤 웹 페이지를 반환할지, 반환할 페이지를 HTML 로 정의해 놓는다.
- `/templates`에 위치한 HTML들은 View가 아닌 ViewTemplate이다.
- `/static` 에 위치한 HTML 들은 정적 페이지
WAS 웹 어플리케이션 서버 내 템플릿 엔진
동적 웹 페이지를 만들기 위해서는 2개가 필요 = 반복적인 템플릿 + 데이터
- 반복적인 템플릿 = viewTemplate
- 데이터 = Model
- 동적 웹 페이지 = View(HTML)
웹 서버(WS) - 정적 페이지 반환: Controller 없이 view(HTML) 반환
1. WelcomPageHandlerMapping
- Spring 자체 설정 디렉토리 `/resources/static` 내 `index.html` 파일 추가
- Thymeleaf 자체 설정 디렉토리 `/resources/templates` 내 `index.html` 파일 추가
- 페이지 로드 시 `/resources/static` 우선순위가 `/resources/template`에 앞선다
2. BasicErrorController
- spring이 기본 제공하는 ErrorController 인터페이스 구현체
Conroller 없이 에러 페이지 반환
- Controller 없이 View(HTML) 반환하기 = Spring이 기본 제공하는 내장 기본 Controller가 동작한다.
- Thymeleaf `/resources/templates` 사용
- `/resources/templates` 에 "error.html"을 추가하면 해당 html을 띄어준다.
- Controller 없이 view(HTML) 반환하기 = 404 / 500 에러페이지 세부 커스터마이징
- Thymeleaf `/resources/templates/error` 디렉토리 추가
❓WelcomePageHandlerMapping에서는 페이지 로드 시 `/resources/static` 우선순위가 `/resources/templates`에 앞선다 고 했는데 ErrorPage는 왜 templates에 있는 뷰 템플릿만 찾는가? 다음 포스팅에 게시할 예정(여기에 작성하면 너무 길어진다)
공식문서
https://docs.spring.io/spring-boot/reference/web/servlet.html#web.servlet.spring-mvc.error-handling.error-pages
728x90
'ASAC 웹 풀스택 > Spring Boot' 카테고리의 다른 글
Spring MVC 원리(1) - 동작 과정 (0) | 2024.10.07 |
---|---|
[Spring Boot] 기본 MVC 개발을 위한 Annotations 과 그 이해(1) - 컨트롤러로 정적/동적 페이지 반환, 타임리프 설정 변경 (1) | 2024.10.06 |
Java 기본 문법 및 JVM 구성(14) - SOLID (3) | 2024.09.30 |
Java 기본 문법 및 JVM 구성(13) - Enum 활용 (0) | 2024.09.30 |
Java 기본 문법 및 JVM 구성(12) - 다형성 (0) | 2024.09.29 |