LoginSignup
2
2

More than 3 years have passed since last update.

Spring Initializerを使ってHello World

Last updated at Posted at 2020-12-30

はじめに

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
https://github.com/AdoptOpenJDK/homebrew-openjdk
・Java 11 (OpenJDK: AdoptOpenJDK) を Homebrew で macOS にインストールする
https://qiita.com/niwasawa/items/460ccd0fa0041e7a2491

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

それぞれPackという名前の通り色々内包されています。詳細はリンク先まで。

Spring Initializer

Project作成

https://start.spring.io/
以下の内容で「GENERATE」すると、ダウンロードフォルダにzipファイルが格納されます。
スクリーンショット 2020-12-30 0.04.56.png

VSCodeで開く

File > Open > 展開したフォルダを選択
DemoApplication.javaにmainメソッドが作成されています。
スクリーンショット 2020-12-30 0.08.49.png

Hello World

Controller

  • /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, install
Spring boot dashboard から start or debug

ブラウザでhttp://localhost:8080をたたく
スクリーンショット 2020-12-30 22.14.08.png
成功です:thumbsup:

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
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf

Controller

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をたたく
スクリーンショット 2020-12-30 22.57.59.png
成功です:thumbsup:

もしも以下のようなエラーが出てしまったら、.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.)

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2