本文へスキップ
BecomeCoder

Spring / Spring Bootコース · 第1章 Springとは ― なぜ世界中で使われるのか · レッスン1

フレームワークとは何か ― Springが引き受けてくれること

ローカル実施

導入

「ライブラリ」は使ったことがあっても、「フレームワーク」との違いは意外と説明しづらいものです。Springを学ぶ前に、フレームワークが開発をどう変えるのかをつかんでおきましょう。

説明

ライブラリ は「あなたのコードが呼び出す部品」です。一方 フレームワーク は逆で、「フレームワークがあなたのコードを呼び出す」——この主従の逆転を 制御の反転(IoC: Inversion of Control) と呼びます。

graph LR
  subgraph LIB["ライブラリを使う場合"]
    A["あなたのコード"] -->|呼び出す| B["ライブラリ"]
  end
  subgraph FW["フレームワークを使う場合"]
    C["フレームワーク(Spring)"] -->|呼び出す| D["あなたのコード"]
  end

Webアプリを一から作ると、本来やりたい「業務ロジック」以外に、次のような面倒な土台を自分で用意しなければなりません。

Springは、この「土台」の大部分を引き受けてくれます。開発者は業務ロジックに集中でき、土台はSpringのルールにのっとってSpringに任せる。これがフレームワークを使う最大の利点です。

Springは巨大なエコシステムを持っています。主なものだけ挙げておきます。

プロジェクト役割
Spring Frameworkすべての土台。DIコンテナが核
Spring Boot面倒な設定を自動化し、すぐ動くアプリを作れるようにする
Spring MVCWebアプリ・REST APIを作る
Spring Data JPAデータベースアクセスを簡単にする
Spring Security認証認可を担う

このコースでは、この中でも中心となる DIコンテナSpring BootWeb(REST API)Spring Data JPA を順に見ていきます。