본문 바로가기

SPRING

[SPRING] 첫페이지 만들기 및 빌드

<정적페이지 실습>

스프링 부트는 resources/static/ 경로에  index.html 파일을 만들면 index.html이 첫화면(welcome page) 가된다.

 

index.html 에 코드 작성

<!DOCTYPE HTML>
<html>
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
Hello spring!!
</body>
</html>

작성 후  메인메서드 실행후 localhost:8080 으로 들어가면

다음과 같은 페이지가 생성됨.

 

*****스프링은 엄청나게 거대해서 필요한것을 찾아가는 능력이 중요함. (spring.io 사이트에서 자신의 버전에 맞게 찾아야함.)****

 

지금 한 것은 정적인 html을 웹서버가 클라이언트에게 그냥 넘겨준 것. 템플릿 엔진을 사용해서 웹페이지의 변화를 줄 수 있음 (블로그에서는 thymeleaf 템플릿 엔진을 사용)

 

<템플릿엔진 실습>

컨트롤러: 웹어플리케이션에서 첫번째 진입점이다.

다음과 같은 경로에 컨트롤러라는 패키지 밑에 자바파일을 생성.

자바파일에

package tengnara.hellospring.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {
    @GetMapping("hello") //hello라는 url로 들어오면 해당 메서드 실행
    public String hello(Model model) {
        model.addAttribute("data", "hello!!");//data라는 이름을 찾아 hello!! 를 삽입해라
        return "hello";
    }
}

와 같이 입력(Model은 MVC(모델,뷰,컨트롤러)패턴 중 모델에 해당)

 

해당 경로에 hello.html 생성후 다음과 같이 입력

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" ></p>
</body>
</html>

2라인을 적어 줌으로써 html에서 thymeleaf 템플릿엔진 문법을 사용할 수 있음.

${data} 부분에 위에서 작성한 model의 hello!!가 전달됨.

 

여기까지 작성하고 localhost:8080/hello 로 접속하면

다음과 같은 웹페이지(메서드가 전달한 결과) 를 볼 수 있음.

 

thymeleaf 동작과정

1. 웹 브라이저에서 /hello url로 접속

2. 톰켓 내장 서버가 @GetMapping("hello")된 컨트롤러를 찾아 메서드 실행

3. model(스프링이 만들어줌)에 name과 value를 저장(data:hello!!)

4. 메서드 리턴 값이 "hello" 일때 뷰 리졸버가  resources/templates/hello.html을 찾아 model을 넘기면서 랜더링함.( ${data} (model에서 name 값)라는 곳에 "hello!!"(value)를 랜더링 후 클라이언트에게 전송)

 

<빌드 및 실행하기>

cmd창에서 

해당 파일들이 있는 폴더로 이동.

해당 명령어 작성 하면 빌드완료

 

build\libs 폴더에 jar 파일이 생성된 것을 볼 수 있음.

 

해당 파일을 cmd 에서 java -jar hello-spring-0.0.1-SNAPSHOT.jar 하면 실행됨. (인텔리j에서 서버구동을 안해도.)

(정상구동시 cmd 모습)

구동하고 locallhost:8080 으로 들어가면 정상적으로 웹페이지가 동작함.

 

***서버 배포시, jar파일만 서버에서 넣어서 실행하면 된다. (서버에서 스프링이 실행됨.)***

'SPRING' 카테고리의 다른 글

[SPRING] 스프링구조 - 의존관계  (0) 2021.12.14
[SPRING] 프로젝트 생성  (0) 2021.12.14