Spring/스프링 입문

spring 초기 설정 ~ 빌드+실행

mint* 2023. 1. 21. 18:17
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

 

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

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

www.inflearn.com

 

 

java 11과 java 17사이에 고민했지만 우선 현업에 많이 쓰이는 java11로 결정

java11일 경우 spring boot 2.~~를 사용해야한다(3.~~부터는 java17)

스프링 프로젝트 생성

https://start.spring.io

artifact는 프로젝트 이름

 

generate 한 후 build.gradle파일을 인텔리제이에서 연다.

 

gradle을 intelliJ idea로 build와 run test 옵션 수정한다. 이렇게 하면 더 빠르게 띄울 수 있다.

jvm을 11로 설정한다.

 

welcome page 만들기

resources/static/index.html

경로에 html만들기

 

궁금한 것이 생겼을 때 찾아볼 사이트

https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-welcome-page

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

spring boot document이다. 막히거나 자세하게 알고 싶을때 이 사이트 이용하기

 

Controller 만들기

controller는 시작점이다. 

1. 웹 브라우저는 /hello에 대해 매핑되어있는 컨트롤러를 찾는다. (@GetMapping("hello") )

 

 

2. 컨트롤러가 문자값을 반환하면 viewResolver가 화면을 찾아서 처리한다.

resources: templates/ +{ViewName}+ .html 형식이다.

여기서는 templates/hello.html 파일을 화면으로 띄운다.

컨트롤러가 모델로 data:hello!! 매핑한 값이 ${data}에 치환되어 들어간다.

 

Devtools 라이브러리

프로젝트 재시작없이 컴파일만 다시 해주면 변경 결과가 적용된다.

https://barbera.tistory.com/47

 

Spring Boot Devtools 사용법

Devtools란 ? devtools는 Spring boot에서 제공하는 개발 편의를 위한 모듈이다. 개발을 하다보면, 코드 수정시 브라우저에서 보여주는 내용도 수정하려면 어플리케이션을 재시작해야 하기 때문에 불편

barbera.tistory.com

 

빌드하고 실행하기

 

./gradlew build 로 빌드하고

 

build/libs에 들어가서 빌드한 스냅샷 실행하기

java -jar spring-start-0.0.1-SNAPSHOT.jar

 

후에 서버 배포할때는 이 파일만 서버에 집어넣고 실행하면 된다. 와 대박 편해

 

 

혹시 안되면 ./gradlew clean build 해보기(이전 빌드한 파일을 지우고 빌드한다.)

 

 

728x90