導入
「ライブラリ」は使ったことがあっても、「フレームワーク」との違いは意外と説明しづらいものです。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 MVC | Webアプリ・REST APIを作る |
| Spring Data JPA | データベースアクセスを簡単にする |
| Spring Security | 認証・認可を担う |
このコースでは、この中でも中心となる DIコンテナ・Spring Boot・Web(REST API)・Spring Data JPA を順に見ていきます。