本稿では、Spring BootのDeveloper Tools(開発者ツール)を使用してアプリケーションを自動的に再起動する方法について説明します。本稿では次のことを解説します。
- 開発者ツールにはどのような機能があり、Automatic Restart(自動再起動)がアプリケーション開発をどのように手助けするか。
- IntelliJ IDEAと開発者ツールの自動再起動機能を統合する方法。
自動再起動
Spring Bootフレームワークのモジュールとして提供されているDeveloper Toolsは、アプリケーション開発をはかどらせてくれるモジュールです。
開発者ツールは、5つの機能で構成されています。
- デフォルトプロパティ
- Automatic Restart(自動再起動)
- LiveReload
- グローバル設定
- リモートアプリケーション
上記の機能の中で、開発プロセスにスピードへの大きな影響を与えるものは2番目のAutomatic Restartです。これは、./outや./buildなどのフォルダー内のファイルの変更を監視してくれ、クラスパス上のファイルが変更されると、アプリケーションを自動的に再起動してくれます。
Developer Toolsのインストールはとても簡単です。次の一行をbuild.gradleのdependencies
ディレクティブに追加してください。
dependencies {
...
runtimeOnly 'org.springframework.boot:spring-boot-devtools'
...
}
IntelliJとDeveloper Toolsの統合
ただし、上記の一行を追加するだけでは、Developer Toolsはまだ自動的にアプリケーションを再起動してくれません。さらに2つのステップをこなす必要があります。
まず、プロジェクトのビルドを自動化する設定に有効にする必要があります。Preferences.../Settings... -> Build, Execution, Deployment -> Compilerを開き、Build project automaticallyを許可します。

次に、レジストリ設定を変更します。 command + shift + Aを押し(Windowsを使用している場合はCtrl + Shift + Aを押し)、Registryを検索します。

レジストリのリストをスクロールして次の設定を見つけて有効にします。
compiler.automake.allow.when.app.running

上記の2つのステップを終了することで、手動で再起動することなくアプリケーションを開発できるようになります。
最後に注意しなければならないのは、アプリケーションの起動方法です。Gradleタスクの bootRun
の代わりに main
関数を実行してアプリケーションを起動する必要があります。

まとめ
本稿では下記の2つについて解説しました。
- Developer Toolsにはどのような機能があり、Automatic Restartがアプリケーション開発をどのように手助けするか。
- IntelliJ IDEAと開発者ツールの自動再起動機能を統合する方法。