
JavaでWebアプリケーション開発をする場合、SpringBootを選択することはスタンダードとなりました。今回はSpringBootでWebアプリケーションを開発する場合にライブリロードを実現するDevToolsの使い方を紹介します。
見出し
はじめに
Webアプリケーションの開発ではリアルタイムでソースコードの変更を感知してブラウザを更新する機能であるライブリロードは必須です。今どきソースコードを変更してからローカルサーバーを再起動して、ブラウザをリロードするなんてアナログなことは誰もやりたくありません。ソースコードを変更するだけでそれらは自動でロードされるべきです。
SpringBootの場合はそのライブリロード機能はDevToolsによって実現されます。それではやっていきましょう。
前提
以下がインストールされている必要があります。
- Chromeがインストール済みであること
- SDKMANがインストール済みであること
- Javaがインストール済みであること
- IntelliJのIDEがインストール済みであること
細かいバージョンは’環境を参照して下さい。
Chromeにプラグインをインストールする
ChromeにLiveReloadのプラグインをインストールして下さい。
Spring CLIのインストール
SDKMANを使ってインストールします。JVM系の言語やフレームワークのインストールは必ずSDKMANから行うと開発では便利ですよね。
$ sdk list springboot
$ sdk install springboot
$ spring --version
Spring CLI v2.0.2.RELEASE
DevTools入りのSpringBootプロジェクトを作る
Spring CLIを使ってDevTools入りのプロジェクトを作り、Spring CLIで起動しましょう。
$ spring init --list
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Service capabilities :: https://start.spring.io
Supported dependencies
...
| devtools | Spring Boot Development Tools | >=1.3.0.RELEASE |
...
| web | Full-stack web development with Tomcat and Spring MVC | |
...
$ spring init --build=maven --java-version=10 --boot-version=2.0.3.RELEASE --dependencies=web,devtools springbootdevtool
Using service at https://start.spring.io
Project extracted to '/Users/user/springbootdevtool'
$ cd springbootdevtool/
$ ls
mvnw* mvnw.cmd pom.xml src/
$ ./mvnw spring-boot:run
/Users/user/springbootdevtool
...
. ____ _ __ _ _
/\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.3.RELEASE)
...
Chromeでlocalhost:8080を開いてみましょう。
起動が確認できました。
IntelliJ IDEAの設定
作ったプロジェクトを自分のIDEで開いて、次の設定をしていきましょう。
Registoryの設定をする
「Help -> Find Action」を開きます。
「Registry」で検索します。
「compiler.automake.allow.when.app.running」にチェックを入れて、「close」します。
Registryの設定は完了です。
プロジェクトの設定をする
「Preferences…」を開きます。
「Build, Execution, Deployment -> Compiler」から「Build project automatically」をチェックして、「Apply」します。
これでプロジェクトの設定は完了です。
動作確認
それでは、ライブリロードされるか確認していきましょう。
LiveReloadを起動する
Chromeの右上にLiveReloadのアイコンがあるので、それをクリックしてLiveRelaodを起動します。
アイコンがない場合は、Chromeのプラグインの設定を見直して下さい。
コントローラーを作って起動する
今回は簡単なRESTコントローラーを作ります。名前はDemoController.javaとして、起動しましょう。
DemoController.javaの内容は以下のです。
package com.example.springbootdevtool;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
@RequestMapping("/")
public String demo() {
return "Hello, SpringBoot!";
}
}
IDEで起動します。
ブラウザで開きます。
問題なく表示されました。
起動したままでコントローラーの中身を書き換える
先程のプロジェクトは起動したままで、コントローラーの中身を適当に変えてみましょう。今回は「Hello, SpringBoot!」を「Hello, DevTools!」に書き換えてみます。すると、自動的にビルドされ、プロジェクトが再起動されます。
ブラウザも見てみましょう。
ブラウザも手動でリロードしなくても自動でリロードされ、表示内容が変更されています。
これでDevToolsでライブリロードが実現できました。
最後に
いかがでしたか?ライブリロードを有効にすることで、SpringBootでのWebアプリケーション開発を快適に進めていきましょう。それでは。
環境
- PC : macOS High Sierra 10.13.5
- Java : openjdk version “10.0.1” 2018-04-17
- Spring CLI : v2.0.2.RELEASE
- Chrome : 67.0.3396.87
- SDKMAN : 5.6.4+305
- IntelliJ : IntelliJ IDEA 2018.1.4 (Ultimate Edition) Build #IU-181.5087.20, built on May 16, 2018


コメントを残す