[ Spring ] 스프링 프로젝트 생성




프로젝트 생성

  • 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 라고 치면)

spring

이렇게 웹서버에 잘 뜨는걸 확인할 수 있다.




그럼 이 서버가 어떻게 실행됐는지 설명을 영한님의 그림을 보도록 하자.

spring

  1. 클라이언트가 localhost:8080/hello 라는 요청을 던진다.
  2. 스프링부트는 내장 톰캣 서버를 가지고 있는데, 이 톰캣 서버가 스프링에게 묻는다
  3. ‘너 hello라는 이름 가진 메서드 있어?’ 라고.
  4. 있으면 hello 라는 메서드 전체가 실행된다.
  5. 이때 스프링이 Model을 하나 만들어서 넣어준다 (key는 data, 값은 hiiiiiii :) 이다 )
  6. 스프링부트는 기본적으로 리턴 값으로 들어있는 문자열을 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 을 해주면 서버가 실행된다.

spring

~~올레 ᐠ( ᐕ )ᐟ ~~



만약에 하다가 잘 안되거나 그러면 다시 지우고 새로 빌드하는 명령어인

./gradlew clean build 를 해주면 된다.






김영한님의 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 수업들으면서 정리!




© 2018. by sora

Powered by sora