本文へスキップ
BecomeCoder

Spring / Spring Bootコース · 第3章 Spring Boot ― すぐに動くアプリを作る · レッスン8

Spring Bootとは ― 自動構成(auto-configuration)

ローカル実施

導入

Webアプリを作るには、Tomcatのようなサーバーを用意し、DBとの接続を設定し、JSON変換ライブラリを組み込み……とやることが山積みです。これを毎回手作業で書いていたら日が暮れてしまいます。

説明

Spring Boot登場以前は、これらすべてをXMLやJavaConfigで手動設定するのが普通でした。Spring Bootは、「よく使われる組み合わせなら、こう設定しておけば大抵は動くはず」という賢い初期値(convention over configuration = 設定より規約) をあらかじめ用意しています。これを 自動構成(auto-configuration) と呼びます。

graph LR
  subgraph Before["Spring Boot登場前"]
    A1["Tomcatの設定を書く"] --> A2["DB接続を設定する"]
    A2 --> A3["JSON変換を組み込む"]
    A3 --> A4["ログ出力を設定する"]
    A4 --> A5["ようやくアプリが動く"]
  end
  subgraph After["Spring Boot"]
    B1["依存を追加するだけ"] --> B2["自動構成が状況を判断"]
    B2 --> B3["すぐ動くアプリが完成"]
  end

たとえば、クラスパス上に組込みTomcatのライブラリが存在すれば、Spring Bootは「ああ、このアプリはWebアプリなんだな」と判断し、Tomcatを自動で立ち上げるように構成します。データベースのドライバが存在すれば、DB接続の設定を自動で組み立てます。開発者は「何を使いたいか」を依存関係として追加するだけで、細かい配線はSpring Bootが埋めてくれるのです。

もちろん、自動構成された内容は上書きできます。「初期値はこう。気に入らなければ自分で変えていい」というのがSpring Bootの設計思想です。次のレッスンから、この自動構成を実際にどう使う(そして必要なら上書きする)のかを見ていきます。

やってみよう

これまでWebアプリの「土台部分」(サーバー起動、DB接続設定など)を自分で書いたことがあれば、それをSpring Bootに任せた場合どれくらいの手間が減りそうか想像してみましょう。まだ経験がなくても、「土台を自分で作る」と「土台はフレームワーク任せにする」の違いを言葉にしてみてください。