はじめての Sprint Boot in Kotlin
概要
Spring Boot での開発環境を構築する手順を説明します。 インストールから、ブラウザでページに Hello World を表示させるまでの手順です。 開発言語には Kotlin、ビルドツールには Gradle を使います。
確認環境
- IntelliJ IDEA COMMUNITY 2016.2
- Spring Boot 1.4.0
参考情報
- SpringBoot + Kotlin + Devtools を IntelliJ IDEA で上手く動かす - らびたろちゃんにっき
- Spring Boot Reference Documentation
背景
Kotlin は IntelliJ IDEA を開発している JetBrains 社によって開発された言語です。 2016 年にバージョン 1.0 がリリースされました。 Kotlin コンパイラは Java バイトコードを生成するため、Kotlin で書かれたプログラムは Java VM で動かすことができます。 Java 互換をうたっており、Java のライブラリを使用することも、Java から呼び出すこともできます。
IntelliJ IDEA は Android Studio のベースになっている IDE です。 Android Studio では Gradle が標準のビルドツールになっており、 Android Studio + Gradle + Kotlin による開発環境を容易に構築することができます。
Web 開発といえば Eclipse の使用が定石とは思いますが、 Kotlin を使うことを前提とするため、 Android Studio + Gradle + Kotiln と親和性の高い環境である IntelliJ IDEA + Gradle + Kotlin を使います。
手順
以降は下記の順番に説明する。
- SPRING INITIALIZER を使って、Gradle プロジェクトを作成する
- IntelliJ IDEA に Gradle プロジェクトをインポートする
- ソースコードを編集する
- サーバーを起動してブラウザで確認する
- Automatic-restart を試す
- LiveReload を試す
SPRING INITIALIZER のページで、Gradle プロジェクトを作成する。 Generate Project ボタンの下にある、Switch to the full version と書かれたリンクをクリックする。 各項目は下記のように選択、もしくは入力した。
- Generate a
Gradle Project
with Spring Boot1.4.0
- Group, Artifact, Name, Description, Package Name
- Package Name は Group + Artifact と同じに
- Artifact と Name は同じに
- Description は適当に
- Packaging :
War
- Jar にすると Tomcat を内包した実行可能な jar ができる(はず)
- Java Version :
1.8
- Language :
Kotlin
- Selected Dependenccies :
DevTools
,Web
Generate Project ボタンをクリックすると ZIP ファイルがダウンロードされる。
IntelliJ IDEA にプロジェクトをインポートする。 ダンロードした ZIP ファイルを IdeaProjects ディレクトリに展開後、IntelliJ IDEA を起動。 Import Project を選択し、展開したディレクトリを選択。 Import project from external models で Gradle を選択し、デフォルト設定で Finish。
Hello World を表示するだけの RestController (HelloController.kt) を追加する。
package org.anyspirit.webapp.feature.web import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @RestController class HelloController { @RequestMapping("/") fun index(): String = "Hello World" }
Tomcat を起動して、Chrome で確認する。
Tomcat を起動するためには Gradle で bootRun
タスクを実行する。
IDE の Gradle ツールから起動することもできるが、後で説明する Automatic-restart が期待通りに動作しないため Terminal から起動する。
$ ./gradlew bootRun
http://localhost:8080
をブラウザで開くと Hello World が表示される。
HelloController.kt の Hello World を他の文字に変更した時に自動的に反映されるようにしたい。
自動的にコンパイルするよう IDE の設定を変更する。
設定画面で Build, Execution, Deployment > Compiler > Make project automatically
を ON にする。
Terminal で bootRun
タスクを実行したままで、HelloController.kt を Hello World から Hello Beautiful World に変更する。
自動的にコンパイルされ、Automatic-restart が行われて Terminal の表示が更新される。
(Automatic-restart は DevTools の機能。)
ブラウザの表示を更新すると Hello Beautiful World が表示される。
ブラウザの表示更新を自動化する。
http://livereload.com/extensions/ から Chrome 拡張のリンクを辿り、LiveReload 拡張をインストールする。
http://localhost:8080
を表示して、LiveRecorad 拡張のアイコンをクリックすることで LiveReload を有効にする。
Terminal で bootRun
タスクを実行したままで、HelloController.kt を Hello Beautiful World から Hello Beautifull World!!! に変更する。
ブラウザの表示が自動的に更新され Hello Beautiful World!!! が表示される。
更新に時間がかかりエラーページが一時的に表示されるときがある。 どれだけ待っても更新されないような時は Spring Boot Reference Documentation を参考にして Spring Loaded を試してみると良いかもしれない。