[ Spring ] 스프링 프로젝트 생성
in BackEnd
프로젝트 생성
- Java 11
IDE : 인텔리J
- 스프링 부트 스타터 사이트 : https://start.spring.io/
- 요즘은 거의 다 Gradle로 사용
- Spring Boot 선택시
SNAPSHOT
부분은 아직 작업중인 버전이라는 뜻, M1은 아직 정식 릴리즈 된 버전이 아니라는 뜻 - Group : 보통 기업명
- Artifact : 결과물 이름
- Dependencies : 어떤 라이브러리를 사용할 것인가
ADD DEPENDENCIES...
버튼을 눌러서Spring Web(web)
,Thymeleaf(Template Engines)
를 검색해서 추가해준다. - 그리고
GENERATE
- 인텔리제이에서
Open or Import
을 누르고 방금 추출한 gradle폴더에서build.gradle
을 클릭하고 Open을 해준다
그냥 그대로 실행하면 어쨌거나 8080포트가 실행되면서 웹서버가 실행된다.
Main 클래스가 있는 곳에 Controller 패키지를 새로 하나 만든뒤,
HelloController
라는 클래스를 하나 만들고
package spring.spring.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model){
model.addAttribute("data", "hiiiiiii :) ");
return "hello";
}
}
로 입력한다.
@GetMapping("hello")
은 Get메서드를 의미한다.
그리고 resource > templates 에 새로운 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>
라고 친 뒤 run을 하면 (+url에 localhost:8080/hello
라고 치면)
이렇게 웹서버에 잘 뜨는걸 확인할 수 있다.
그럼 이 서버가 어떻게 실행됐는지 설명을 영한님의 그림을 보도록 하자.
- 클라이언트가 localhost:8080/hello 라는 요청을 던진다.
- 스프링부트는 내장 톰캣 서버를 가지고 있는데, 이 톰캣 서버가 스프링에게 묻는다
- ‘너
hello
라는 이름 가진 메서드 있어?’ 라고. - 있으면
hello
라는 메서드 전체가 실행된다. - 이때 스프링이 Model을 하나 만들어서 넣어준다 (key는
data
, 값은hiiiiiii :)
이다 ) - 스프링부트는 기본적으로 리턴 값으로 들어있는 문자열을
resources/templates
안에 있는 파일명과 비교하여 찾는다신기하다 JS에서는 문자열 리턴하면 진짜 그냥 문자열 리턴이라 나는 ‘hello’ 라고 리턴하는줄 알았는데 파일을 찾으라는 뜻이었군;;;- 컨트롤러에서 리턴 값으로 문자를 반환하면
ViewResolver
가 화면을 찾아서 처리한다 - 스프링 부트 템플릿엔진 기본 viewName 매핑 =>
resource/templates+{ViewName}+.html
- 컨트롤러에서 리턴 값으로 문자를 반환하면
빌드
ls -al
을 치게되면
drwxr-xr-x@ 13 soraji staff 416 Feb 18 23:13 .
drwxr-xr-x@ 10 soraji staff 320 Feb 18 22:52 ..
-rw-r--r--@ 1 soraji staff 444 Feb 18 13:52 .gitignore
drwxr-xr-x 6 soraji staff 192 Feb 18 22:54 .gradle
drwxr-xr-x 8 soraji staff 256 Feb 18 23:18 .idea
-rw-r--r--@ 1 soraji staff 1200 Feb 18 13:52 HELP.md
drwxr-xr-x 6 soraji staff 192 Feb 18 22:54 build
-rw-r--r--@ 1 soraji staff 514 Feb 18 13:52 build.gradle
drwxr-xr-x@ 3 soraji staff 96 Feb 18 13:52 gradle
-rwxr-xr-x@ 1 soraji staff 8188 Feb 18 13:52 gradlew
-rw-r--r--@ 1 soraji staff 2838 Feb 18 13:52 gradlew.bat
-rw-r--r--@ 1 soraji staff 28 Feb 18 13:52 settings.gradle
drwxr-xr-x@ 4 soraji staff 128 Feb 18 13:52 src
이렇게 나오게 되는데,
(mac에서) 빌드하는 법은 ./gradlew build
를 하고,
그 다음에 또 폴더를 확인해보면 build
파일이 생성된 걸 확인할 수 있다.
그럼 build 폴더 안으로 들어가서 , 그 안에 libs 폴더로 또 들어간다.
그리고 ls를 해보면
spring-0.0.1-SNAPSHOT.jar
파일이 생성된걸 확인할 수 있다.
자바를 실행시키는 명령어는
$ java -jar 실행시킬 jar파일 이름
이므로,
java -jar spring-0.0.1-SNAPSHOT.jar
을 해주면 서버가 실행된다.
~~올레 ᐠ( ᐕ )ᐟ ~~
만약에 하다가 잘 안되거나 그러면 다시 지우고 새로 빌드하는 명령어인
./gradlew clean build
를 해주면 된다.
김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
수업들으면서 정리!