アプリケーションを実行する

アプリケーションを jar としてパッケージ化し、組み込み HTTP サーバーを使用する最大の利点の 1 つは、他のアプリケーションと同じようにアプリケーションを実行できることです。このサンプルは、Spring Boot アプリケーションのデバッグに適用されます。特別な IDE プラグインや拡張機能は必要ありません。

以下のオプションは、開発のためにアプリケーションをローカルで実行するのに最適です。本番環境の デプロイ については、本番のためのパッケージングを参照してください。
このセクションでは、jar ベースのパッケージについてのみ説明します。アプリケーションを war ファイルとしてパッケージ化することを選択した場合は、サーバーと IDE のドキュメントを参照してください。

IDE からの実行

IDE から Spring Boot アプリケーションを Java アプリケーションとして実行できます。ただし、最初にプロジェクトをインポートする必要があります。インポート手順は、IDE とビルドシステムによって異なります。ほとんどの IDE は Maven プロジェクトを直接インポートできます。例: Eclipse STS ユーザーは、File メニューから Import…​ → Existing Maven Projects を選択できます。

プロジェクトを IDE に直接インポートできない場合は、ビルドプラグインを使用して IDE メタデータを生成できる場合があります。Maven には、Eclipse [Apache] (英語) および IDEA [Apache] (英語) のプラグインが含まれています。Gradle は、さまざまな IDE (英語) のプラグインを提供します。

誤って Web アプリケーションを 2 回実行すると、「ポートはすでに使用されています」というエラーが表示されます。Eclipse Spring Tools ユーザーは、Run ボタンではなく Relaunch ボタンを使用して、既存のインスタンスを確実に閉じることができます。

パッケージ化されたアプリケーションとして実行する

Spring Boot Maven または Gradle プラグインを使用して実行可能 jar を作成する場合、次の例に示すように、java -jar を使用してアプリケーションを実行できます。

$ java -jar target/myapplication-0.0.1-SNAPSHOT.jar

リモートデバッグサポートを有効にしてパッケージ化されたアプリケーションを実行することもできます。これにより、次の例に示すように、パッケージ化されたアプリケーションにデバッガーを接続できます。

$ java -agentlib:jdwp=server=y,transport=dt_socket,address=8000,suspend=n \
       -jar target/myapplication-0.0.1-SNAPSHOT.jar

Maven プラグインの使用

Spring Boot Maven プラグインには、アプリケーションをすばやくコンパイルして実行するために使用できる run ゴールが含まれています。IDE の場合と同様に、アプリケーションは展開された形式で実行されます。次の例は、Spring Boot アプリケーションを実行する典型的な Maven コマンドを示しています。

$ mvn spring-boot:run

次の例に示すように、MAVEN_OPTS オペレーティングシステム環境変数を使用することもできます。

$ export MAVEN_OPTS=-Xmx1024m

Gradle プラグインの使用

Spring Boot Gradle プラグインには、アプリケーションを展開形式で実行するために使用できる bootRun タスクも含まれています。bootRun タスクは、org.springframework.boot および java プラグインを適用するたびに追加され、次の例に示されています。

$ gradle bootRun

次の例に示すように、JAVA_OPTS オペレーティングシステム環境変数を使用することもできます。

$ export JAVA_OPTS=-Xmx1024m

ホットスワップ

Spring Boot アプリケーションはプレーン Java アプリケーションであるため、JVM ホットスワップはそのまま使用できます。JVM のホットスワップは、置き換えることができるバイトコードによって多少制限されます。より完全なソリューションには、JRebel (英語) を使用できます。

spring-boot-devtools モジュールには、アプリケーションの迅速な再起動のサポートも含まれています。詳細については、ホットスワップ「使い方」を参照してください。