728x90

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

본 블로그는 해당 스프링 강의(김영한) 수강 후, 작성된 게시물입니다.


1. index.html 파일 만들기

resources/static 위치에 index.html 생성

2. index.html 내용 작성

다음과 같이 hello를 작성한다.

spring boot는 정적 및 템플릿 시작 페이지를 제공한다.
가장 먼저 static 위치에서 index.html을 먼저 찾고, 없다면 index 템플릿을 찾는다.
둘 중 하나가 발면되면 자동으로 응용 프로그램의 시작 페이지로 사용된다.
- 참고 사이트 : https://docs.spring.io/spring-boot/docs/2.7.0/reference/htmlsingle/#features.spring-application

 

3. 서버 실행 시, index.html에서 작성한 코드과 화면에 표시

스프링 부트가 제공하는 welcome Page 기능
static/index.html을 올려두면 Welcome page 기능을 제공한다.

 

4. Controller 생성한다.

java/hello.hellospring 위치에서 controller 패키지와 HelloController 클래스를 생성한다.

 

5. Controller에 내용 작성

컨트롤러는 반드시 @Controller라는 어노테이션이 존재해야하며, @GetMapping 어노테이션을 통해 웹 어플리케이션에서 /hello로 들어오면, 그 아래 메소드를 호출해준다. (@GetMapping에서 get은 get/post의 get을 일컫는다.) addAttribute()에서 키는 "data", 값은 "hello!!"가 된다.

 

6. hello.html 생성

 

resources/templates 위치에 hello.html을 생성한다.

7. hello.html에 내용 작성

여기서 th는 thymeleaf 때문에 th로 한 것이다.

 

8. 실행 후, hello 하이퍼링크를 누른다.

다음과 같이, data에 Controller에서 작성한 hello!! 가 삽입되어 화면에 표시된 것을 확인할 수 있다.


참고로 스프링 부트는 톰캣이랑 웹서버를 내장하고 있다.

▶ 동작 방식

  1. 웹 브라우저에서 /hello를 던지면, 서버에서 스프링에게 묻는다.
  2. helloController의 @GetMapping에서 hello에 매칭이 된다.
  3. @GetMapping 어노테이션이 적힌 메소드가 실행된다.
  4. model에 키:값으로 data:hello!! 을 넣는다.
  5. hello를 return한다. 여기서 hello는 resources/templates의 위치에 있는 hello.html의 이름과 같아야하며 해당 html을 rendering한다.
    • 컨트롤러에서 리턴 값으로 문자를 반환하면 뷰 리졸버(viewResolver)가 화면을 찾아서 처리한다.
    • 스프링부트 템플릿 엔진 기본 viewName 매핑
    • resources:templates/+{ViewName}+.html
참고: 'spring-boot-devtools' 라이브러리를 추가하면, html 파일을 컴파일만 해주면 서버 재시작 없이 View 파일 변경이 가능하다.
인텔리J 컴파일 방법: 메뉴 build > Recompile

템플릿 엔진

thymeleaf 템플릿 엔진 사용

사이트 : https://www.thymeleaf.org/

 

웹 어플리케이션의 첫번째 진입 장벽이 Controller

728x90

'IT > Spring' 카테고리의 다른 글

[Spring] AOP  (0) 2022.06.18
[Spring] 빌드하는 법  (0) 2022.06.18
Spring[2] - 스프링과 메이븐  (0) 2022.06.17
Spring[1] - Spring 프레임워크 개요  (0) 2022.06.15
[Spring] 라이브러리 살펴보기  (0) 2022.05.29

+ Recent posts