ナビゲーションをスキップする

Java Spring Boot とは?

Spring Boot — Web アプリケーションとマイクロサービスを開発するための人気ある Java ベースのツールの概要

Spring Boot とは?

Spring Boot の定義については、最も一般的で広く使用されている開発言語とアプリ開発用のコンピューティング プラットフォームの 1 つである Java から会話を開始する必要があります。世界中の開発者がJavaを学ぶコーディングの旅を始めます。柔軟でユーザーフレンドリーなJavaは、ソーシャルメディア、Web、ゲームアプリケーションからネットワーキングアプリケーションやエンタープライズアプリケーションまで、さまざまなアプリケーションで開発者のお気に入りです。

Java と Spring フレームワーク

Java は他の言語に比べて使いやすく、習得しやすいかもしれませんが、Java アプリのビルド、デバッグ、デプロイの複雑さは驚異的なレベルに達しています。これは、現代の開発者が音楽ストリーミングやモバイル現金支払いアプリなどの一般的な現代技術用の Web アプリやモバイル アプリを開発するときに直面する変数の指数関数的な数によるものです。基本的な基幹業務アプリを作成する開発者は、複数のライブラリ、プラグイン、エラー ログと処理のライブラリ、Web サービスとの統合、および C#、Java、HTML などの複数の言語を処理する必要があります。当然のことながら、Java アプリケーション開発を合理化し、開発者の時間とコストを節約するツールに対する十分な需要があります。

アプリケーションフレームワーク (開発者が必要に応じて使用し、独自のコードに追加できる、事前に記述されたコードの大規模な本体) を入力します。これらのフレームワークは、モバイル アプリや Web アプリの開発、デスクトップや API の操作など、ほぼすべてのニーズに対して開発者の負荷を軽減します。フレームワークは、ソフトウェア開発プロジェクトのさまざまな要素をすべて結び付けるのに役立つ再利用可能なコードとツールを提供することにより、アプリをより速く、より簡単に、より安全に作成します。

Spring が登場する場所: Spring は、Javaでアプリケーションを作成するための合理化されたモジュラーアプローチを提供するオープンソース プロジェクトです。Spring プロジェクトのファミリは、初期の Java 開発の複雑さへの対応として 2003 年に始まり、Java アプリケーションの開発をサポートしています。Spring という名前は、通常、アプリケーション フレームワーク自体、またはプロジェクトのグループ全体、またはモジュールを指します。Spring Boot は、Spring フレームワークの拡張機能としてビルドされた特定のモジュールです。

それでは、Spring フレームワーク、Spring Boot、Java がどのように連携するかに関する背景を踏まえて、Java フレームワーク Spring 内での Web アプリケーションとマイクロサービスの開発を合理化および高速化するツールである Spring の定義を次に示します。

言語やプラットフォームが Java であるため、「Java Spring Boot」、「Java Springフレームワーク」、または「Spring Bootフレームワーク」と呼ばれることがあります。ただし、Play や Hibernate など、Java 用で他のサードパーティ製フレームワークもあるため、「Spring」と「Spring Boot」と言う方がより正確です。

Java の基本に関する高度なディスカッションについては、「Java とは?」の記事をご覧ください。

Spring と Spring Boot の違いとは?

前述のように、Spring はオープンソースの Java ベースのアプリケーションフレームワークであり、その傘下にある多くの小規模なプロジェクトをカバーしています。他の一般的な Spring プロジェクトには、Spring Data、Spring Cloud、Spring Security などがあります。Spring Boot と Spring の違いを理解するには、コア機能に違いがあっても、すべて Spring ファミリにあることを認識することが重要です。

Spring Boot と Spring の違いを完全に理解するには、まずいくつかの重要な用語を定義する必要があります。

マイクロサービスとは?

マイクロサービスは、ソフトウェア開発アーキテクチャへのアプローチです。マイクロサービスの "micro" とは、小さな、管理可能な部分、またはコンポーネントで配信されるコードを指し、各 "サービス" またはコア関数は、他のサービスとは独立して作成およびデプロイされます。独立したコンポーネントは連携して動作し、契約と呼ばれる所定の API ドキュメントを介して通信します。これらのマイクロサービスの小規模かつ相対的な分離には、多くの利点があります。たとえば、この種類のアーキテクチャは分散されており、厳密に結合されているため、1 つのコンポーネントが失敗してもアプリ全体が中断することはありません。その他の利点は、生産性の向上、メンテナンスの容易化、業務の整合性の向上、フォールト トレランスの向上などがあります。

依存関係の挿入とは?

依存関係の挿入 (DI) は、制御の反転 (IoC) を実現するために使用される設計手法です。Java のようなオブジェクト指向プログラミングでは、他のオブジェクトに依存するオブジェクトを依存関係と呼びます。通常、受信側オブジェクトまたは依存型オブジェクトはクライアントと呼ばれ、クライアントが依存しているオブジェクトはサービスと呼ばれます。したがって、依存関係の挿入はサービスをクライアントに渡すか、インジェクターと呼ばれるコードを使用して依存関係を「挿入」します。DI を使用すると、使用するサービスを指定する必要がなくなり、インジェクターがクライアントに対してその作業を行います。

構成に関する規則とは?

構成に対する規則 (規則によるコーディングと呼ばれることもあります) は、開発者が行う必要がある決定の数を減らすためにアプリケーション フレームワークで使用される概念です。冗長なコードを書くのを避けるために、「自分自身を繰り返さない」という原則に準拠しています。慣習によるコーディングは、開発者が作成しているアプリの非伝統的な側面のコードのみを作成できるようにしながら、柔軟性を維持するよう努めます。アプリの望ましい動作が確立された規則と一致すると、アプリは構成ファイルを書き込むことなく既定で実行されます。開発者は、望ましい動作が「規則」から外れている場合にのみ、構成ファイルを明示的に記述する必要があります。

Spring フレームワーク対 Spring Boot

Spring Boot は Spring フレームワークの利点に基づいてビルドされているため、これは Spring フレームワーク と Spring Boot における 「二者択一」 の問題ではなく、 「両方」 の利点なのです。Spring と Spring Boot は密接に関係しています。

利用できません Spring Spring Boot
概要 Java に基づくオープンソースの Web アプリケーション フレームワーク。 Spring フレームワーク上に構築された拡張機能またはモジュール。
それは何をしますか? 事前に構築されたコードのツールとライブラリを使用して、柔軟で完全に構成可能な環境を提供し、カスタマイズされた疎結合型 Web アプリケーションを作成します。 注釈、XML 構成、または多数の追加コードを記述しなくてもすぐに実行できるスタンドアロン Spring アプリケーションを作成できるようにします。
いつ使う必要がありますか?

必要なときに Spring を使用します。

  • 柔軟性
  • こだわりのないアプローチ*
  • カスタム コードから依存関係を削除。
  • 非常に一意な構成を実装。
  • エンタープライズアプリケーションの開発。

必要なときに Spring Boot を使用します。

  • 使いやすい
  • こだわりのあるアプローチ*
  • 高品質のアプリをすばやく実行し、開発時間を短縮。
  • 定型コードの記述や XML の構成を避けるため。
  • REST API を開発するため。
その主な機能とは? 依存関係の挿入 自動構成
埋め込みサーバーはありますか? いいえ。Spring では、サーバーを明示的に設定する必要があります。 はい。Spring Boot には Tomcat や Jetty のような組み込みの HTTP サーバーが付属しています。
それはどのように構成されていますか? Spring フレームワークは柔軟性を提供しますが、その構成は手動で構築する必要があります。 Spring Boot は、デフォルトの 「設定に関する規約」 の原則に従って、Spring およびその他のサードパーティ フレームワークを自動的に構成します。
XML の操作方法を知る必要がありますか? Spring では、XML 構成に関する知識が必要です。 Spring Boot では、XML 構成の必要はありません。
開発/テスト アプリ用の CLI ツールはありますか? Spring フレームワークだけでは、アプリを開発またはテストするための CLI ツールは提供されません。 Spring モジュールとして、Spring Boot には Spring ベースのアプリを開発およびテストするための CLI ツールがあります。
それは、こだわりのあるものやこだわりのないアプローチから機能しますか? こだわりのない こだわりのある*

*「こだわりのある」対「こだわりがない」フレームワークのアプローチ

「こだわりのある」という言葉は漠然と否定的に聞こえるかもしれませんが、Spring Boot のこだわりのあるアプローチと、こだわりのない Spring フレームワークの両方に利点があります。

こだわりのあるアプローチ

こだわりのアプローチは、他のすべての方法よりもはるかに簡単な1 つの方法があるという立場を取ります。設計上、ソフトウェアはデザイナーを制限し、所定の方法で作業を行うように促します。

それはよく整ったパス、ほとんどの状況でほとんどの人にとってうまくいくベスト プラクティスを提供します。アプリは、これらのベスト プラクティスと広範な規則に厳密に従って書かれています。こだわりのあるアプローチにより、コーディング プロジェクトでのコラボレーションと支援の取得がはるかに簡単になり、そのフレームワークの経験を持つ他の開発者は、新しいアプリにすぐに慣れ親しみ、すぐに参加できます。

こだわりのないアプローチ

すべてのソリューションがほぼ同じ量の労力または複雑さを必要とする場合は、こだわりのないアプローチを採用します。問題を解決する唯一の正しい方法は存在しないという立場を取るのです。むしろ、さまざまな方法で問題を解決するために使用できる柔軟なツールを提供します。こだわりがないフレームワークには、開発に多くの柔軟性を提供するという利点があり、開発者がより多くの制御を行うことができます。このように柔軟性が高い場合の主な欠点は、フレームワークが非常にオープンエンドで、こだわりがないため、開発者が行う決定が多くなり、より多くのコードを記述しなければならなくなる可能性があることです。

Spring Boot の機能と利点

最後に、魅力的な部分、つまり Spring Boot が Spring フレームワークを超えて提供するコア機能です。Spring Boot を使用すると、アプリのセットアップ、構成、実行をより簡単かつ迅速に行うことができます。これにより、ほとんどの Spring ベースのアプリを設定するために必要な構成の面倒な作業が不要になります。開発者は、基礎となる Spring フレームワークを学習することなく、すぐに Spring Boot を使用できます。

ここでは、Spring Boot の機能が Java プログラミング・タスクの合理化にどのように役立つかを説明します。Spring Boot の主な機能は次のとおりです。

  • スタンドアロン アプリケーション。Spring Boot は、特定のプラットフォームに関連付けられていないアプリを作成するのに役立ち、インターネット接続や他のインストール済みサービスを使用せずにデバイス上でローカルに実行して機能させることができます。
  • 埋め込みサーバー—Spring Boot を使用すると、Tomcat、Tomcaty、Undertow などのサーバーを直接埋め込むことができます。
  • こだわりのあるアプローチ - Spring Boot は、こだわったスターターの依存関係を提供することで、ビルド構成を簡素化します。
  • 自動構成 - Spring Boot は、可能な限り Spring およびその他のサードパーティ ライブラリを自動的に構成します。
  • 運用対応機能。Spring Boot は、メトリック、正常性チェック、外部化された構成などの実稼働に対応した機能を提供します。

Spring Boot の利点

Spring Boot:

  • 開発時間を短縮し、生産性を向上 - Spring Boot を使用すると、Java を使用した Spring ベースのアプリケーションの開発がはるかに簡単になります。Spring フレームワークに対するこだわりのあるアプローチにより、決定や反復的なタスクに費やす時間が短縮され、アプリの作成とテストに集中する時間が増えます。
  • 定型コード、注釈、XML 構成を記述する必要性を軽減 — 開発者がコードを生成したり、XML を構成したり、Spring フレームワークを学習したりする必要さえありません。(望まなければ)
  • Spring プロジェクト ファミリ アプリの統合 — Spring Boot アプリは、Spring Data、Spring Cloud、Spring Security など、Spring フレームワーク エコシステム内の他のプロジェクトや、Microsoft Azure Spring Cloud などの他の信頼できるクラウド サービスとシームレスに統合されます。
  • 開発/テストツールの提供 — Spring Boot のコマンドライン インターフェイス (CLI) ツールと埋め込み HTTP サーバーを使用すると、Spring ベースのアプリを開発/テストするための環境を簡単に作成できます。
  • 開発を容易にするプラグインとツールを提供 — Spring Boot には、インメモリデータベースや、Apache Maven などの他の一般的なビルド自動化ツールで作業できるプラグインが用意されています。

Java Spring Boot チュートリアル

Spring フレームワークを使用したアプリのビルドに既に慣れている場合は、このセクションで提供されているチュートリアル、プロジェクト スターター、ドキュメントを使用して Spring Boot を簡単に学習できるでしょう。ただし、Spring Boot の使用を急いでいて、まだフレームワークがわからない場合は、Spring フレームワークを学習する前に Spring Boot を学習し、操作することは可能です。これはフレームワークについて知っておくべきことをすべて教えるわけではありませんが、後で学習することにした場合は、すぐに始められます。

Spring Boo tを学習することのもう 1 つの利点は、アプリ開発をはるかに迅速かつ効率的にすることに加えて、他の Spring 機能、つまり Spring Data、Project Reactor、Spring Security を使用できるようになることです。

つまり、依存関係の挿入と制御の反転の基本的な概念が Spring フレームワークでどのように機能するかを最初に学習すると、最初の Spring Boot チュートリアルで実行が簡単になります。非常に高度な概要を次に示します。

依存関係の挿入

  • XML ベース、つまり、<beans/>および<namespace:*/>
  • 注釈ベース、(@Component、@Autowired、@Inject)
  • Java ベース(@Configurationクラス、@Beanメソッド)

制御の反転 (IoC)

  • ApplicationContext — Spring IoC コンテナーとして機能するルート インターフェイス
  • BeanFactory — Spring コンテナーにアクセスするためのインターフェース
  • Beans — ApplicationContext によってインスタンス化、アセンブル、管理されるオブジェクト

初心者向けの Spring Boot チュートリアル

基本を習得して、Spring Boot アプリを大規模にビルドしてデプロイする場合は、Microsoft と VMware のフル マネージド Azure Spring Cloud サービスをチェックアウトすることを検討してください。

Java アプリケーションの作成とセキュリティ保護

Azure Active Directory (Azure AD) の Spring Boot スターターを使用して、Spring Initializr を使用して Java アプリケーションを作成します。

最初のアプリを Azure Spring Cloud にデプロイする

Spring Initializr で構築された単純な Spring Boot アプリを作成、プロビジョニング、監視について説明します。

シンプルな Spring Boot マイクロサービスを構築する

単純なマイクロサービスをビルドしてデプロイし、Spring Cloud テクノロジを追加する方法を学習します。

その他の Spring Boot スターター

ストレージ、セキュリティ、認証、キー コンテナー機能を Spring Boot アプリに追加します。

よくあるご質問

  • Spring Boot は、Spring が提供するオープンソースのマイクロサービス ベースの Java Web フレームワークで、Web アプリケーションやマイクロサービスを開発するソフトウェア エンジニアにとって特に役立ちます。

    詳細情報

  • "Spring Boot in Java" は "Java Spring Boot" の別の言い方で、この 2 つの用語は同じ意味で使用できます。Java は言語とプラットフォームであり、Spring は Java に基づくアプリケーションフレームワークで、Spring Boot は Spring フレームワークの拡張であり、いくつかの利点があります。

    詳細情報

  • Spring Boot には一般的な Spring フレームワークの機能がありますが、Spring Boot では Spring を学習する必要はありません。Spring Boot 属性は自動構成され、こだわりのあるアプローチにより、Spring アプリの開発とデプロイに関連する定型コードと構成の多くが削除されるため、開発者はより短い時間でアプリを起動して実行できます。

    詳細情報

  • 開発時間の短縮、生産性の向上、使いやすさは、Spring Boot アプリの開発の利点のほんの一部です。

    詳細情報

  • Spring Web サイトには多くのチュートリアル、クイックスタート、ドキュメントがあり、さらに、Microsoft Azure の Spring Boot Starter とドキュメントもあります。Spring Boot アプリのデプロイをすぐに開始したい場合は、ウェビナー「Accelerate Spring Boot Applications to Cloud at Scale (Spring Boot アプリケーションをクラウドで大規模に高速化する)」をご覧ください。

    詳細

準備が整ったら、Azure の無料アカウントを設定しましょう。

どのようなご用件ですか?