Spring Boot 基礎 — *なぜ Spring Boot なのか*
Spring Boot 基礎 — *なぜ Spring Boot なのか*
🎯 このレッスンを読み終えたら
このレッスンをすべて読み終えると、次の3つを自信を持って説明できるようになります。
- ▸✅ Spring の 3大思想 (IoC · AOP · POJO) をひと言で定義する
- ▸✅ @Component / @Service / @Repository / @Controller の役割の違いを理解する
- ▸✅ Spring Boot がかつての Spring の XML 地獄を終わらせた理由を説明する
学習目標を チェックリストとして手元に置き、すべて答えられるようになったらレッスンを閉じてください。
Spring とは何か — *複雑な Java バックエンドを簡素化する*
要点ひと言
Spring = Java でサーバーを作る際に 繰り返し発生する複雑な作業 を 自動的に処理 してくれるフレームワーク。2003 年に Rod Johnson が作成しました。
なぜ Spring が誕生したのか
2000 年代初頭、Java バックエンドは EJB (Enterprise JavaBeans) という標準で構築されていましたが、非常に複雑でした。シンプルな機能ひとつを実装するにも 膨大な設定ファイル・インターフェース・実装クラス が必要で、開発者たちは 「ビジネスロジックより設定コードの方が多い」 と不満を抱えていました。
Spring はこの 複雑さを取り除き、普通の Java オブジェクト (POJO) でサーバーを構築できるようにしました。DI・AOP・トランザクション などの横断的関心事をフレームワークが担うというパラダイムは爆発的に普及しました。
Spring vs Spring Boot — 何が違うのか
Spring だけでも 複雑な EJB よりはるかにシンプル でしたが、それでも 設定が多い という課題がありました。XML 設定ファイルが数十行、外部 Tomcat のインストール、WAR ファイルのビルドとデプロイ…
Spring Boot (2014~) は 「設定も私たちが引き受ける」 という、さらに一歩進んだ進化です。
ほとんどの開発者は Spring Boot を使います。単に「Spring」と言えば、多くの場合 Spring Boot を指します。
なぜ韓国で Spring が 圧倒的 なのか
韓国のバックエンド求人の 80%以上 が Spring を要求しています。Kakao・Naver・Coupang・Toss・Daangn — すべて Spring ベース。その理由:
- ▸2010 年代初頭、電子政府フレームワーク が Spring をベースに標準化された
- ▸大手 SI 企業が Spring でシステムを構築した
- ▸その結果、開発者・学習リソース・教育 がすべて Spring 中心になった
韓国でバックエンド開発者を目指すなら、Spring は事実上必須 です。
自動設定 (Auto-configuration) — Spring Boot の魔法
spring-boot-starter-web の依存関係を1つ追加するだけで:
- ▸組み込み Tomcat が起動
- ▸DispatcherServlet が登録
- ▸Jackson による JSON シリアライズが有効化
- ▸静的ファイルの配信 (
/static/·/public/) - ▸デフォルトエラーページ
これがすべて コード0行 で動作します。Spring Boot が classpath に 何があるか を確認し、合理的なデフォルト値 で設定してくれるのです。
設定を変更したい場合は、application.properties または application.yml に1行追加するだけです:
まとめ
- ▸Spring = Java バックエンドフレームワーク (2003~)
- ▸Spring Boot = Spring + 自動設定・組み込みサーバー (2014~)
- ▸韓国のバックエンド求人の 80%以上 が Spring ベース
- ▸5分以内に 本番対応サーバーを起動できる
Spring Boot プロジェクトの *始め方*
最速の始め方 — start.spring.io
https://start.spring.io — Spring チームが作った プロジェクトジェネレーター。5分で動作するサーバーを起動できます。
選択するオプション:
- ▸Project: Gradle 推奨 (Maven も OK)
- ▸Language: Java
- ▸Spring Boot バージョン: 最新安定版 (3.x)
- ▸Dependencies: 最低限
Spring Web(REST API)。よく一緒に使うもの:Spring Data JPA、H2 Database、Lombok
GENERATE をクリックすると zip ファイルがダウンロードされます。解凍して IDE で開けば完了。
重要な3つのファイル
1. Main クラス — サーバーのエントリーポイント:
@SpringBootApplication の1行が 3つのこと を同時に行います:
- ▸
@Configuration— このクラスが設定クラスであることを宣言 - ▸
@EnableAutoConfiguration— 自動設定を有効化 - ▸
@ComponentScan— 配下パッケージの@Component・@Serviceなどを自動登録
2. application.yml — 設定:
3. 最初のコントローラー:
./gradlew bootRun を実行 → http://localhost:8080/hello にアクセス → 「Hello, Spring Boot!」のレスポンスを確認。
ディレクトリ構造
これが Spring の標準構造 です。会社に入って最初に目にする形です。
よくある初歩的なミス
1. @SpringBootApplication の配置: Main クラスは 最上位パッケージ に置く必要があります。配下パッケージの @Component を 自動スキャン するためです。位置が間違っていると Bean が登録されません。
2. ポートの競合: 他のプロセスが 8080 を使用中の場合、起動に失敗します。server.port: 8081 に変更するか、既存のプロセスを終了してください。
3. application.yml のインデント: YAML は 半角スペース2つ のインデントに敏感です。タブを使うとエラーになります。スペース2つ で統一してください。
まとめ
start.spring.io から zip をダウンロード → IDE で開く → @RestController + @GetMapping を追加 → bootRun を実行 → 完成。これが 5分以内 にできる流れです。一度試せば Spring Boot の魅力をすぐに実感できます。
🤖 AI にこう聞いてみましょう
このレッスンの概念を理解すれば、AI に 具体的に 指示を出せるようになります。漠然とした「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「この Spring Boot コードに Spring Boot 基礎 — なぜ Spring Boot なのか のパターンを適用して」
- ▸「Spring Boot 基礎 — なぜ Spring Boot なのか に関連する @SpringBootTest 統合テストを書いて」
- ▸「実務で Spring Boot 基礎 — なぜ Spring Boot なのか を使う際に注意すべき落とし穴を3つ教えて」
なぜこれでトークンが減るのか
概念を知らないと、AI の回答を受け取っても 「それは何ですか?」 と再度尋ねなければなりません。その「再質問」がトークンを消費します。概念を一度理解しておけば、会話が一度で完結します。