JavaのWebアプリケーション向けフレームワーク、Spring Bootの開発環境構築手順をまとめました。Windows10での構築方法です。
Macは持っていないので残念ながら記事にできません・・・。Zipファイルの解凍方法以外はあまり変更なく行けるとは思うのですが。
この記事を読めば、Spring Bootを使ってHello Worldをブラウザ上に表示させることができるようになります。
この記事で説明するPleiades All in One Eclipseを使った開発環境の構築は、多分一番楽な方法です。
画像も使ってなるべくわかりやすく説明していきます。
Pleiades All in One Eclipseをインストールする
Spring Bootの開発環境には、Eclipse+Spring Boot用のプラグイン、Spring Tools 4、IntelliJ IDEAなど選択肢が色々あります。
今回はJDKやLombokのインストールが不要で日本語化もされているPleiades All in One Eclipseを使うことにしました。
7-Zipをインストールする
Pleiades All in One Eclipseをインストールするための下準備として、7-Zipというツールをインストールします。
Pleiades All in One EclipseはZipファイルを解凍するだけでインストールが完了します。しかし、長いパスを使っているところがあるらしく、Windows10標準の機能ではうまく解凍できないのです。
7-ZipのダウンロードページからWindows64ビット用の実行ファイルをダウンロードしましょう。
後はダウンロードしたexeファイルを実行するだけです。インストール先のフォルダを指定するだけなので、難しいことはないでしょう。インストール先はデフォルトのままで問題ありません。
Pleiades All in One Eclipseをインストールする
続いてPleiades All in One Eclipse本体をインストールしましょう。
Pleiades All in One EclipseのダウンロードページからJava用のFull Editionをダウンロードします。最新版のページからWindows 64bitのJava開発用Full Editionを選択してください。Zipファイルがダウンロードされます。
ダウンロードしたZipファイルを解凍するだけでインストールは終了です。先程インストールした7-Zipを使って解凍するために、Zipファイルを右クリックして[7-Zip]→[ここに展開]を選んでください。
pleiadesというフォルダにPleiades All in One Eclipseが解凍されるので、好きなフォルダにコピーしましょう。この記事ではC:\直下にpleiadesフォルダを置く前提で説明していきます。
Pleiades All in One EclipseのEclipseを起動する
ファイルを解凍したらやるべきことはほとんどありません。Javaの開発に必要なJDKなどはすべてインストールと設定がされている状態です。多分Spring Bootの開発環境構築の中で最も楽でしょう。日本語への翻訳もさてていますし。
ただ、初回起動時だけ少し設定の必要があります。
Pleiades All in One Eclipseでは、pleiadesフォルダ内のeclipseフォルダにあるeclipse.exeを実行するとEclipseが起動します。
初回の起動には少し時間が必要です。準備が整うと、ワークスペースの場所を聞かれます。
ワークスペースは、今後作成するプロジェクト(Javaソフト開発の最小単位みたいなもの)を保存する場所です。こだわりが無ければ、デフォルトのまま[../workspace]で良いでしょう。この場合、pleiadesフォルダの直下にworkspaceフォルダが作られ、プロジェクトはそこに保存されます。
今後何回も質問されるのも面倒なので、「この選択をデフォルトとして使用し、今後この質問を表示しない」にもチェックを入れます。
これで無事にPleiades All in One Eclipseが起動できました。おめでとうございます。
Spring Boot開発の準備をする
Spring Bootでの開発を行うために、専用のプロジェクトを作ります。先程もちょっと書きましたが、プロジェクトはJavaソフト開発の最小単位みたいなものです。
Spring Boot用のプロジェクトを作成するためには、Eclipseで[ファイル(F)]→[新規(N)]→[Springスタータープロジェクト]と選択します。
すると新規Springスタータープロジェクトウインドが立ち上がります。色々入力欄がありますが、今回は以下のテーブルように設定しましょう。テーブルに無い項目はデフォルトのままです。
項目名 | 値 | 概要 |
名前 | test | プロジェクトの名前 |
グループ | blog.tsuchiya | 複数のプロジェクトをまとめて開発を行う際などに利用するらしい。あんまり気にしなくて大丈夫。 |
成果物 | test | Spring Bootアプリケーションをビルドしたら出来上がるファイルに付ける文字列。 |
パッケージ | blog.tsuchiya.test | プロジェクトで使うベースパッケージ |
こんな感じで入力したら[次へ(N)]を押します。
続いて新規Springスタータープロジェクト依存関係では、今回のプロジェクトで使う機能を指定します。今回使うのは以下の2つだけです。どちらも左上の検索欄に「Web」と入力すると出てきます。
名前 | 概要 |
Spring Web | Webアプリケーションで使う基本的な機能を提供 |
Thymeleaf | Thymeleafというテンプレートエンジンを使えるようにする |
この2つを設定したら[完了(F)]を押しましょう。
しばらく必要なファイルのダウンロードが続きます。ダウンロードが終わったら、Eclipseは次のような状態になっているはずです。
ここまででSpring Boot開発の準備は整いました。
Hello Worldをブラウザに表示する
ごく簡単なWebアプリケーションを作成してみます。
内容はおなじみHello World。
ブラウザからの入力を管理するControllerクラスから、Thymeleafに文字列を渡して表示するプログラムを作ります。最後にアプリケーションサーバを起動してブラウザからアクセスしてみましょう。
Thymeleafテンプレート
先にブラウザに表示するHTMLのテンプレートを作成します。
Spring BootではThymeleafのテンプレートは
src\main\resources\templates
このフォルダに置くことになっています。今回はtemplatesフォルダ直下にindex.htmlを作りました。この段階でのフォルダ構成は画像のようになります。
作成したindex.htmlの中身は次のようにします。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Spring Bootサンプルアプリケーション</title>
</head>
<body>
<!--/* Controllerから渡される文字列を展開する */-->
<h1 th:text="${message}">ダミーテキスト</h1>
</body>
</html>
解説が必要なのはth:text=”${message}”の部分でしょう。これは、Thymeleafの構文です。後で作るControllerクラスから渡される「message」という文字の内容をh1タグのテキストとして設定しなさいという指示になります。
後でアプリケーションサーバを実行してブラウザからアクセスするとわかりますが、「ダミーテキスト」の部分は無視して「message」の内容を表示します。
Controllerクラス
続いてControllerクラスです。アクセスするURLに応じでどのような処理を行うのかを記述します。
Spring Bootで使うクラスは、Spring Boot開発の準備をするで指定したパッケージ内に存在する必要があります。
今回作る小さなサンプルではあんまり必要ないのですが、今後大きなアプリを作る場合の練習としてblog.tsuchiya.testパッケージの下にcontrollerパッケージを作成して、その中にControllerクラスを作成しましょう。
パッケージエクスプローラーのblog.tsuchiya.testパッケージを右クリックして、[新規(W)]→[クラス]を選択します。
すると新規Javaクラスウインドが表示されるので、[パッケージ(K)]を「blog.tsuchiya.test.controller」に、[名前(M)]を「TestController」にして[完了(F)]を押します。
これでControllerクラスができました。
このクラスの中に、Controllerクラスであること示すアノテーションと、ブラウザから指定URLでアクセスされた場合の初期を書いていきます。
package blog.tsuchiya.test.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
// このクラスがControllerであることを示すアノテーション
@Controller
public class TestController {
// このURLでGETメソッドでアクセスされた場合の処理
// @GetMappingアノテーションを付けてあればメソッド名は何でもいい
// modelにはSpring Bootが必要なインスタンスを入力してくれる
@GetMapping("test")
public String index(Model model) {
// messageという文字列に値を格納する
model.addAttribute("message", "Hello World");
// 利用するテンプレートファイルを指定する
return "index";
}
}
だいたいコメントに書いた通りの内容です。
1つだけ、
return "index";
ここがわかりにくいと思います。テンプレートファイルの場所を返しているのですが、Thymeleafを使う場合、拡張子「.html」は不要です。そのため、「index」だけを返すと「index.html」ファイルをテンプレートとして利用することになります。
アプリケーションサーバ起動とブラウザでのアクセス
それでは実際に動かしてみましょう。
書いたコードをSpring Bootアプリケーションとして実行するためには、プロジェクトを右クリックして[実行(R)]→[Spring Bootアプリケーション]と選択していきます。
すると、左下のコンソールにSpring Bootの実行ログが流れます。
初回起動時にWindowsから警告が出るかもしれませんが、気にしないでOKにしてください。
Spring Bootの起動が完了(ログに「Started TestApplication in 1.206 seconds」のようなものが表示される)したら、ブラウザでhttp://localhost:8080/testにアクセスしましょう。
Hello Worldと表示されたら成功です。
Controllerクラス(TestController)から「message」という名前で「Hello World」という文字列をThymeleafテンプレート「index.html」に渡しました。 「index.html」 では「th:text=”${message}”」という機能を使って「message」の値をh1タグのテキストとして表示しています。
Spring Bootを停止するためには、画面左下コンソールの赤い四角ボタンを押してください。
まとめ
Pleiades All in One Eclipseのインストールから簡単なSpring Bootアプリケーションの実行までを行ってきました。
これでSpring Bootを勉強する前提は整ったはず。DIやAOPなど慣れないと難しい概念があるフレームワークですが一歩一歩学習を進めていきましょう。
今後Spring Bootの勉強をしていくのなら、Spring Boot 2 入門: 基礎から実演まで Webアプリ開発入門がおすすめです。私もこの本で勉強しました。
以前にStrutsを利用しての開発経験があったとはいえ、Spring Bootの学習時間半年で実務に入れたのはこの本のおかげです。
紙の書籍だとバージョンアップで陳腐化することもあるのですが、この本はSpring Bootのメジャーバージョンが上がるたびに対応してくれています。
入門書なんて何回も読み返さないという方でしたら、Kindle Unlimitedに入ってさっさと読みすすめるのもいいでしょう。Kindle Unlimitedでは他にも何冊かSpring Bootに関する書籍が対象になっているので、1冊ずつ買うより安く済みます。
(安いというか最初の1ヶ月は無料なのでただですね。)
2021年9月だと、次の書籍がKindle Unlimited対象です。
コメント