Springフレームワークは高機能かつ包括的ではありますが、Springアプリケーションの構成、セットアップ、デプロイにはかなりの時間を要し、知識も必要となります。 Spring Bootは以下の3つの重要な機能により、この負担を軽減します。
自動構成
自動構成では、あらかじめ設定された依存関係でアプリケーションが初期化されるので、手動で構成する必要がありません。 Java Spring Bootには標準装備された自動構成の機能があるので、基盤となるSpringフレームワークとサード・パーティー・パッケージの両方をお客様の設定に基づいて(エラー回避をサポートするベスト・プラクティスにも基づいています)自動的に構成します。 初期化が完了すれば、こうしたデフォルト設定も上書きはできますが、Java Spring Bootの自動構成機能があればSpringベースのアプリケーションの開発を迅速に開始でき、人的ミスの可能性も低減できます。
宣言的アプローチ
プロジェクトのニーズに基づき、スターターの依存関係の追加と設定のため、Spring Bootは宣言的アプローチを採用しています。 Spring Bootは自身で判断してインストールするパッケージや使用するデフォルト値を選択するので、自分ですべてを判断して手動でセットアップする必要はありません。
典型的なユースケースをカバーする Springスターターと呼ばれる複数のスターターの依存関係を選択しながら、初期化プロセスの過程でプロジェクトのニーズを定義できます。 Spring Boot Initializrは簡単なWebのフォームに入力するだけで実行できるので、コーディングは全く必要ありません。
例えば、 Apache Tomcat Webサーバーなどで必要な依存性をすべてプロジェクトに追加することで、「Spring Web」スターターの依存性は 、SpringベースのWebアプリケーションの構築を最小限の設定で可能にします。 「Spring Security」は認証とアクセス制御の機能をアプリケーションに自動的に追加する、よく利用されるまた別の、スターターの依存性です。
Spring Bootには50以上のSpringスターターが含まれており、さらに多くのサード・パーティーのスターターも利用できます。
スタンドアロン型アプリケーション
開発者はSpring Bootを使用すれば、 すぐに実行できるアプリケーションを作成できます。 具体的には、アプリケーションの初期化時にTomcatやNettyなどのWebサーバーを組み込むことで、外部のWebサーバーに依存せずに、自身で動作するスタンドアロン型アプリケーションを作成できるようになります。 その結果、どのプラットフォームでもRunコマンドだけでアプリケーションを起動できるようになります。 (Webサーバーを組み込まないアプリケーションを構築するために、この機能をオプトアウトにすることも可能です。)