はじめに
- ローカル環境で開発をするときって素早く開発を進めたいですよね
- でも、仕組みによっては修正した内容が反映されずに、ローカルサーバを再起動する必要があります
- 本記事では、Spring Frameworkのコンテナで、修正内容がすぐに反映されるLive Reloadの方法をまとめていきます
前提
- 前回の記事で構築した環境を使います
- 詳しくは下記の記事を参照ください
- STSを使います
やること
- DevToolsを導入
- secretの設定
- Run設定
DevToolsを導入
- STSで
Add Starter
sをクリック

Developer Tools
配下のSpring Boot DevTools
を選択する

- Nextをクリックして先に進む
- これでOK
secretの設定
src > main > resources
ディレクトリ配下のapplication.properties
ファイルを編集していきます
spring.devtools.remote.secret=xxxxxxxx
- 値(ここではxxxxxxxxとしている箇所)はなんでも良いです
Run設定
- STSで
Run Configurations
を開く

Java Application
をダブルクリックする- Projectに適切な名前を入力する
- Main Classに `org.springframework.boot.devtools.RemoteSpringApplication`を入力する

Arguments
タブを開くProgram arguments
のテキストエリアにSpringコンテナのURLを貼る- 例:
http://localhost:8080
- 例:

- Runをクリックして以下の画像のようになればOK
- ここで注意なのは、すでにSpringのコンテナが起動していること
- コンテナが起動していなくてもエラーになることはありません
- ただ、このRun単体ではコンテナは起動しません
- あくまでも、Live Reloadするだけの仕組みになります
- なので、こことは別でSpringコンテナを起動する必要があります

- これで準備完了です
修正が反映されるか試してみる
- APIの戻り値を管理している
IndexController.java
を修正してみます - 元の状態はこんな感じです
package com.nothingbehind.spring.sample.controllers;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class IndexController {
@GetMapping("/")
public String index() {
return "hello!!!!!";
}
}
- この状態でCURLするとこうなります
% curl http://localhost:8080
hello!!!!!
- これをこうします
package com.nothingbehind.spring.sample.controllers;
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!";
}
}
- 修正して保存すると、LiveReloadが反応します
Remote server has changed
って出てますね

- 再度CURLしてみます
% curl http://localhost:8080
hello, world!
- 修正が反映されています
- 成功です!
以上で、SpringコンテナのLiveReloadの方法まとめを終わります。