19. アプリケーションを実行する
アプリケーションを jar としてパッケージ化し、組み込み HTTP サーバーを使用することの大きな利点の 1 つは、アプリケーションを他のアプリケーションと同じように実行できることです。Spring Boot アプリケーションのデバッグも簡単で、特別な IDE や拡張機能は必要ありません。
注: この章では、jar ベースのパッケージ化についてのみ説明します。アプリケーションを war ファイルにパッケージ化する場合は、サーバーと IDE のドキュメントを参照することをお勧めします。
19.1. IDE からの実行
Spring Boot アプリケーションは単純な Java アプリケーションと同じように IDE から実行できますが、最初にプロジェクトをインポートする必要があります。インポート手順は、IDE とビルド システムによって異なります。ほとんどの IDE は Maven プロジェクトを直接インポートできます。たとえば、Eclipse ユーザーはFile
メニューからImport…
-->を選択できますExisting Maven Projects
。
プロジェクトを IDE に直接インポートできない場合は、ビルド システムを使用して IDE メタデータを生成する必要がある場合があります。Maven にはEclipseとIDEA用のプラグインがあり、Gradle にはさまざまな IDE用のプラグインが用意されています。
注: Web アプリを誤って 2 回実行すると、「ポートはすでに使用されています」エラーが表示されます。既存のインスタンスを確実に閉じるには、STS ユーザーはボタンのRelaunch
代わりに ボタンを使用できます。Run
19.2. パッケージ化されたアプリケーションとしての実行
Spring Boot Maven または Gradle プラグインを使用して実行可能 jar を作成すると、それを使用してjava -jar
アプリケーションを実行できます。例えば:
$ java -jar target/myproject-0.0.1-SNAPSHOT.jar
リモート デバッグ サポートを有効にしてパッケージ化されたアプリケーションを実行することができます。これにより、パッケージ化されたアプリケーションにデバッガを接続できます。
$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \
-jar target/myproject-0.0.1-SNAPSHOT.jar
19.3. Maven プラグインを使用した実行
Spring Boot Maven プラグインには、run
アプリケーションを迅速にコンパイルして実行するために使用できるゴールが含まれています。アプリケーションは公開された方法で実行され、即時の「ホット」リロードのおかげでリソースを編集できます。
$ mvn spring-boot:run
便利な OS 環境変数を使用するとよいでしょう。
$ export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128M -Djava.security.egd=file:/dev/./urandom
(「egd」設定は、セッション キーのより高速なエントロピー ソースを Tomcat に提供することにより、Tomcat を高速化します。)
19.4. Gradle プラグインを使用した実行
Spring Boot Gradle プラグインには、run
公開されたアプリケーションを実行するために使用できるターゲットも含まれています。いつインポートしてもspring-boot-plugin
、bootRun
タスクは常に追加されます。
$ gradle bootRun
次のような便利な OS 環境変数を使用するとよいでしょう。
$ export JAVA_OPTS=-Xmx1024m -XX:MaxPermSize=128M -Djava.security.egd=file:/dev/./urandom
19.5. 熱交換
Spring Boot アプリケーションは単なる Java アプリケーションであるため、JVM ホットスワップは問題なく機能するはずです。JVM ホットスワップは、置き換えることができるバイトコードに多少制限があるため、より包括的なソリューションとしてSpring LoadedプロジェクトまたはJRebelを使用できます。
熱交換については、[「ハウツー」](…/IX.「ハウツー」ガイド/README.md) の対応する章を参照してください。