Spring Initializer로 Hello World

소개



Spring Fest 2020에서 Spring Initializer를 사용하여 프로젝트를 만드는 방법을 소개했습니다.
지금까지 SpringBoot에서의 자발적인 개발에 도전과 좌절을 반복해 왔습니다만, Hello World까지 도착했기 때문에 그 기록을 남깁니다.

환경


  • OS: macOS Mojave 10.14.6
  • IDE: Visual Studio Code

  • 아래 준비



    Java 설치



    Homebrew에서 JDK11을 설치합니다.
    설치하면 자동으로 업데이트되므로 버전을 고정하기 위해 tap 명령을 끼웁니다.
    $ brew tap AdoptOpenJDK/openjdk
    $ brew install --cask adoptopenjdk11
      ~~
    🍺  adoptopenjdk11 was successfully installed!
    
    # brewでインストールしたパッケージにJDKが含まれているか確認
    $ brew list
      ~~  openjdk
    
    # Javaのバージョンを確認
    $ java -version
    openjdk version "11.0.9.1" 2020-11-04
    OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9.1+1)
    OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9.1+1, mixed mode)
    
    # インストールされたディレクトリの場所を確認
    $ /usr/libexec/java_home -v 11
    /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    

    JAVA_HOME 및 PATH 설정
    # 現在の設定を確認
    $ export -p
    
    # 設定追加
    $ export JAVA_HOME=`/usr/libexec/java_home -v 11`
    $ PATH=${JAVA_HOME}/bin:${PATH}
    
    # 追記されているか確認
    $ export -p
    declare -x JAVA_HOME="/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home"
    declare -x PATH="/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin
    
    # sourceコマンドを実行してPATHを通す
    $ source ~/.bash_profile
    
    $ which java
    /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home/bin/java
    

    · GitHub AdoptOpenJDK - HomeBrew TAP
    htps : // 기주 b. 코 m / 아도 p와 펜 JDK / 칭찬 브레 w - 오 펜 jdk
    · Java 11 (OpenJDK : AdoptOpenJDK)을 Homebrew로 macOS에 설치
    htps : // 이 m / 니와사와 /

    Maven 설치



    마찬가지로 brew로 설치합니다.
    $ brew install maven
    $ brew list
      ~~  maven
    
    $ mvn --version
    Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
    Maven home: /usr/local/Cellar/maven/3.6.3_1/libexec
    Java version: 11.0.9.1, vendor: AdoptOpenJDK, runtime: /Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
    Default locale: ja_JP, platform encoding: UTF-8
    OS name: "mac os x", version: "10.14.6", arch: "x86_64", family: "mac"
    
    # setting.xmlを.m2フォルダに移動
    $ cp /usr/local/Cellar/maven/3.6.3_1/libexec/conf/settings.xml ~/.m2
    

    Visual Studio Code 설정



    확장 기능 install


  • Java Extension Pack
    (ぁtps://마르케 tp.ゔぃすあ lsつぢお。 이 m/있어 ms? 있어 m 핥기=vsc그럼 ゔ아. vs 코데 야 ゔ ぁ パ CK)
  • Spring Boot Extension Pack
    (ぁtps://마르케 tp.ゔぃすあ lsつぢお。 이 m/있어 ms? 있어 m나메=피ゔぉ타 l. vs 코데 보오 t에서 v 파 CK)

  • 각각 Pack이라는 이름대로 다양한 내포되어 있습니다. 자세한 것은 링크처까지.

    Spring Initializr



    프로젝트 만들기



    htps : // s rt. sp 링 g. 이오/
    아래 내용으로 "GENERATE"하면 다운로드 폴더에 zip 파일이 저장됩니다.


    VSCode에서 열기



    File > Open > 확장된 폴더 선택
    DemoApplication.java에 main 메소드가 작성되었습니다.


    Hello World



    컨트롤러


  • /src/main/java/com/example 아래에 Controller 폴더 만들기
  • Controller 폴더 아래에 IndexController.java 만들기

  • IndexController.java
    package com.example.demo.Controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class IndexController {
    
        @GetMapping("/")
        public String index(){
            return "Hello World";
        }
    }
    

    실행



    MAVEN 부터 clean , package , installSpring boot dashboard 부터 start or debug
    브라우저에서 http://localhost:8080
    성공

    Hello World -Thymeleaf



    다음은 문자열이 아닌 HTML을 반환할 수 있도록 수정합니다.

    pom.xml



    dependencies에 다음을 추가하여 재빌드

    pom.xml
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-thymeleaf</artifactId>
      <version>2.4.1</version>
    </dependency>
    

    Maven repository - Spring Boot Starter Thymeleaf
    htps : // mv 넝마와 ry. 코 m/아 r치후ぁct/오르그. sp 린 gf 라메를 rk. 보오 t / sp 링 g 보오 ts r r thy mea f

    컨트롤러



    IndexController.java
    package com.example.demo.Controller;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class IndexController {
    
        @RequestMapping("/")
        public String index(){
            return "index"; //returnするHTMLのファイル名
        }
    }
    

    HTML


    /src/main/resources/templatesindex.html 만들기

    index.html
    <!DOCTYPE html>
    <html xmlns:th="http://thymeleaf.org">
        <head>
            <meta charset="utf-8">
            <title>Sample</title>
        </head>
        <body>
            <h1>HelloWorld Thymeleaf</h1>
        </body>
    </html>
    

    실행



    Spring boot dashboard 부터 start or debug브라우저에서 http://localhost:8080
    성공

    만약 아래와 같은 에러가 나오면, .m2/repository하하의 폴더를 모두 삭제해 재빌드를 시험해 보세요. 잠시 멈춰 버렸지만 그 방법으로 해결했습니다.

    javax.servlet.ServletException: Circular view path [~]: would dispatch back to the current handler URL [/~] again. Check your ViewResolver setup! (Hint: This may be the result of an unspecified view, due to default view name generation.)

    좋은 웹페이지 즐겨찾기