概要
[Spring Initializr] (https://start.spring.io/)を利用してSpring Bootアプリケーションのひな型を作成する方法のメモです。
開発ツールにはPleiades All in One Eclipseを使用します。
環境
- Windows 10 Professional 1903
- Pleiades All in One Eclipse 2018-09
- Spring Boot 2.1.6
作成手順
[Spring Initializr] (https://start.spring.io/)にアクセスします。図のようなページが表示されると思います。(2019/08現在)
Dependencies
で使用する機能を追加します。追加するのは以下の3つです。
Spring Web Starter
Spring Boot Actuator
Thymeleaf
最後に緑色のGenerate the project
ボタンをクリックすると、demo.zipというファイルのダウンロードが始まります。
ダウンロードしたdemo.zipを展開し、作成されたdemoディレクトリをEclipseのワークスペース内へコピーします。
この記事では以下の場所へコピーしたという前提で説明を進めます。
C:\dev\eclipse_workspace\demo
Mavenでビルドする
コマンドプロンプトを起動し、カレントディレクトリをdemoディレクトリに変更します。
> cd C:\dev\eclipse_workspace\demo
次のコマンドでJAVA_HOME環境変数がセットされているか確認します。
> echo %JAVA_HOME%
コマンドの実行結果が何も表示されなかった場合セットされていません。
この場合、以下のコマンドでセットします。<JAVAのインストールディレクトリ>にはJAVAのインストールディレクトリをフルパスで指定します。
set JAVA_HOME=<JAVAのインストールディレクトリ>
例えば、以下のようになります。
set JAVA_HOME=C:\openjdk\jdk-11.0.2
次のコマンドでビルドを行います。ログが大量に出力されますが最後の方に"BUILD SUCCESS"というメッセージが出力されていればビルドは成功です。
mvnw clean install
// ... 省略 ...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:04 min
[INFO] Finished at: 2019-08-05T21:05:58+09:00
[INFO] ------------------------------------------------------------------------
Spring Bootアプリケーションの起動
次のコマンドでアプリケーションを起動します。起動されるとログのなかに"Started DemoApplication in x.xxx seconds"のようなメッセージが出力されます。
> mvnw spring-boot:run
// ... 省略 ...
INFO 7276 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 5.188 seconds (JVM running for 11.517)
アプリケーションが起動したらブラウザで次のアドレスにアクセスします。
下記の情報がブラウザに表示されれば成功です。(環境によっては整形されずに表示されることがありますが問題ありません。)
{
"_links": {
"self": {
"href": "http://localhost:8080/actuator",
"templated": false
},
"health": {
"href": "http://localhost:8080/actuator/health",
"templated": false
},
"health-component": {
"href": "http://localhost:8080/actuator/health/{component}",
"templated": true
},
"health-component-instance": {
"href": "http://localhost:8080/actuator/health/{component}/{instance}",
"templated": true
},
"info": {
"href": "http://localhost:8080/actuator/info",
"templated": false
}
}
}
アプリケーションの起動が確認できたら、コマンドプロンプト上でCtrl + Cを押し、以下のメッセージにy
を入力して終了します。
バッチ ジョブを終了しますか (Y/N)? y
ひな型をEclipseに取り込む
Eclipseを起動しJava EEパースペクティブを開きます。
まだ開いていない場合は、メニューバー → ウィンドウ
→ パースペクティブ
→ パースペクティブを開く
→ その他
→ Java EE
を選択。
プロジェクト・エクスプローラー上で右クリック → インポート
→ インポート...
→ Maven
→ 既存 Maven プロジェクト
→ 次へ
ボタンをクリック。
図はプロジェクトを取り込んだ直後の状態です。pom.xmlに赤いエラーマークが付いているのでpom.xmlを編集します。
編集する箇所はproperties
要素です。
<properties>
<java.version>1.8</java.version>
</properties>
下記のように1行追加します。
<properties>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
</properties>
赤いエラーマークが消えたら、プロジェクト名を右クリック → Maven
→ プロジェクトの更新
を実行します。
Spring Bootアプリケーションの起動
EclipseからSpring Bootアプリケーションを実行します。
図のようにDemoApplicationクラスファイルを開き、mainメソッドを右クリック → 実行
→ Spring Boot アプリケーション
を実行します。
アプリケーションが起動するとEclipseのコンソールにアプリケーションの起動ログが出力されます。
ログのなかに"Started DemoApplication in x.xxx seconds"というメッセージが出力されていれば起動済みです。
先ほどと同じようにブラウザで次のアドレスにアクセスします。
ブラウザに結果が表示されれば成功です。コンソールの赤い四角いマークをクリックしてアプリケーションを停止させます。
コントローラの追加
このひな型にシンプルなコントローラを追加してみます。
controllerパッケージにIndexControllerクラスを追加します。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping(value = {"/", ""})
public String index(Model model) {
model.addAttribute("message", "ハローワールド!");
return "index";
}
}
テンプレートの追加
src/main/resources/templates
にindex.htmlファイルを作成します。
<!DOCTYPE html>
<html lang="ja" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<meta name="viewport"content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>index</title>
</head>
<body>
<div id="app">
<h1>index</h1>
<p th:text="${message}">Hello World!</p>
</div>
</body>
</html>
アプリケーションを起動し http://localhost:8080/ にアクセスします。
ブラウザに「ハローワールド!」というメッセージが表示されれば成功です。