Java Spring Framework(Springフレームワーク)は、よく使用されているオープンソースのエンタープライズ・レベルのフレームワークで、Java仮想マシン(JVM)上で動作するスタンドアロン型のプロダクション・グレードのアプリケーションを作成します。
Java Spring Boot(Spring Boot)は、以下の3つのコア機能により、SpringフレームワークによるWebアプリケーションやマイクロサービスの開発を迅速化し、より容易に行えるようにするツールです。
これらの機能が連動することで、Springベースのアプリケーションの構築を最小限の設定とセットアップにより行えるツールを提供します。
Springフレームワークは、 依存性注入 の機能を提供することで、Springコンテナによる注入を可能にする依存性をオブジェクト自身に定義させます。 これにより開発者は マイクロサービス と分散ネットワーク・アプリケーションに最適な、疎結合コンポーネントで構成されたモジュール型アプリケーションを作成できます。
Springフレームワークはデータ・バインディング、型変換、検証、例外処理、リソースとイベントの管理、国際化対応など、アプリケーションが実行する必要がある数多くの典型的なタスクに対しても標準装備されたサポートを提供します。 これはRMI(リモート・メソッド呼び出し)、AMQP(拡張メッセージ・キューイング・プロトコル)、Java Webサービスなどの、さまざまなJava EE技術と統合されています。 まとめると、Springフレームワークは、あらゆる環境で動作する疎結合でクロスプラットフォームなJava EEアプリケーションの作成に必要なすべてのツールと機能を開発者に提供します。
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サーバーを組み込まないアプリケーションを構築するために、この機能をオプトアウトにすることも可能です。)
繰り返しになりますが、Springフレームワーク単体と比較した場合のSpring Bootの最大のメリットは、その使いやすさと、開発の迅速化です。 理論的にこれは、Springフレームワークを直接使用した場合に得られる高い柔軟性を犠牲にしているとも言えます。
しかしながら実際のところ、よほどユニークな構成が必要、あるいは実装したい場合を除けば,、Spring Boothにはトレードオフするだけの価値があります。 Springフレームワークでとても人気があるアノテーション・システムを使えば、アプリケーションに(Springスターターがカバーしていない)追加の依存性を容易に注入できます。 その上で、容易なイベント処理、検証、データ・バインディング、型変換、標準装備されたセキュリティー機能とテスト機能などのSpringフレームワークのすべての機能を利用できます。 結論として、プロジェクトの対象範囲が、Springスターターでカバーされていれば、それが一つだけでもSpring Bootは開発を大幅に効率化できます。
すぐに読める、難しくない入門者レベルのSpring Bootの説明書をお探しの場合は、ぜひ以下をご参照ください。 Web上には以下の2つを含めて、Spring Bootの「利用を開始する」ためのチュートリアルがたくさんあります:
その他のチュートリアルはGoogleで「Spring Boot Tutorial」と検索すればたくさん見つかります。
イノベーションを推進しビジネスを前進させるために、チームに必要なスキルとツールをご提供します。
IBM CloudはRed Hatとともに、市場をリードするセキュリティー、企業向けの拡張性、オープン・イノベーションを提供し、クラウドとAIの可能性を最大限に引き出します。
WebSphere Hybrid Editionを活用して、クラウドネイティブ開発、アプリケーションのモダナイゼーション、既存アプリケーションのサポートを推進する方法をご覧ください。
このガイドでは、アプリケーションのモダナイゼーションを加速し、開発者の生産性を上げ、運用上の効率性と標準化を向上させる方法についてご説明します。
このチュートリアルでは、Spring Bootのスターター、および実行可能なJARファイル構造を使用して、「稼働する」Springベースのアプリケーションを迅速に作成する方法を学びます。
Javaが開発プラットフォームとして人気を維持している理由と、Javaがどのようにプロジェクトを加速し、幅広い新しいテクノロジーに対応しているのかについてご説明します。