効率的なデプロイ

実行可能ファイル jar の解凍

実行可能ファイル jar を使用してアプリケーションを実行できますが、ネストされた jar からクラスをロードすると、起動コストが少しかかります。jar のサイズによっては、展開された構造からアプリケーションを実行する方が高速であり、本番環境では推奨されます。特定の PaaS 実装では、実行前にアーカイブを抽出することもできます。例: Cloud Foundry はこのように動作します。

Spring Boot は、さまざまなレイアウトを使用してアプリケーションをディレクトリに抽出することをサポートしています。デフォルトのレイアウトは最も効率的で、CDS フレンドリーです。

このレイアウトでは、ライブラリは lib/ フォルダーに抽出され、アプリケーション jar にはアプリケーションクラスと、lib/ フォルダー内のライブラリを参照するマニフェストが含まれます。

実行可能ファイル jar を解凍するには、次のコマンドを実行します。

$ java -Djarmode=tools -jar my-app.jar extract

そして、本番環境では、抽出した jar を実行できます。

$ java -jar my-app/my-app.jar

起動後、実行可能ファイル jar の実行と抽出された jar の実行の間で実行時間に違いは生じません。

すべての可能なオプションを確認するには、java -Djarmode=tools -jar my-app.jar help extract を実行します。