개발하는 자몽

스프링 부트 공부 (3), View 환경설정, 빌드 및 실행 본문

Java & Kotlin/Spring

스프링 부트 공부 (3), View 환경설정, 빌드 및 실행

jaamong 2022. 1. 3. 16:32

필요한 것 찾는 방법

  1. spring.io 접속
  2. Project > Spring Boot > Learn : 버전에 맞는 reference documentation 에서 잘 찾기..

 

스프링 부트 Welcome Page 기능

src > main > resources > staticindex.html 생성해서 아래 내용 입력 후 run → localhost:8080 접속하면

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

 

짜잔, 정적 페이지

정적 페이지 : 위 html파일을 웹서버가 웹브라우저에 넘겨줌(응답), no 프로그래밍 그냥 파일을 던져준 것

템플릿 엔진(Template Engines)을 사용해서 위에꺼 모양 바꾸기 가능 → 나는 Thymeleaf 사용

 

src > main > Hello.hellospring(package) > controller(란 이름의 package 생성) > HelloController(Java class 파일 생성)

  • @GetMapping
    • HTTP GET 메소드
    • /hello(url)에 매칭됨

 

src > main > resources > templates > hello.html(파일 생성)

 

run → localhost:8080/hello


동작 원리

큰 틀 : 웹 브라우저 ↔ 스프링 부트(내장 tomcat 서버 → 스프링 컨테이너)

더 깊게 :

웹 브라우저 : localhost:8080/hello → 스프링 부트(내장 tomcat 서버 → 스프링 컨테이너) : hello.html(변환 후)) → 웹브라우저

  • 스프링 부트에서 일어나는 일 (내림차순으로 일어남)
    • 내장 tomcat 서버가 스프링 컨테이너에게 /hello(url) 전달
    • 스프링 컨테이너
      • helloContorller(return : hello, model(data : hello!!))
      • viewResolver : template/hello.html(Thymeleaf 템플릿 엔진 처리)

 

자세한 내용

  • 웹 브라우저 : /hello → 내장 tomcat 서버 → HelloController @GetMapping("hello")된 public String hello(Model model) 메소드 실행
  • model(인자)가 넘어오면 addAttribute("data", "hello!!") 실행 → "hello"(resources>templates>hello.html과 동일, 스프링이 hello.html을 찾아서 렌더링 함) 반환. 즉, hello.html 실행
  • Controller에서 반환 값으로 문자를 반환하면 viewResolver가 화면을 찾아서 처리
    • 스프링 부트 템플릿엔진 기본 viewName 매핑 : 'resourcees:templates/' + {ViewName} + '.html'

 


윈도우에서 빌드하고 실행하기

IntelliJ에서 서버 실행중이라면 종료 후 하기, 실행 상태에서 또 실행하려고 하면 이미 사용중인 포트라고 뜹니다.

  1. 프로젝트 폴더가 있는 곳으로 이동
  2. 터미널에 gradlew.bat build 입력
  3. cd build
  4. cd libs
  5. java -jar 명령어로 .jar 파일 실행
    ex) java -jar hello-spring.0.0.1-SNAPSHOT.jar
  6. 서버 실행 확인 ~~
    localhost:8080
  7. 나중에 종료하고 bradlew.bat clean 입력(청소~)

서버 배포 시에는 위 .jar 파일만 배포하면 됨

 

 

Comments