Spring Boot 最初のプロジェクト — start.spring.io から起動まで
Spring Boot 最初のプロジェクト — start.spring.io から起動まで
🎯 このレッスンを読んだあとにできること
このレッスンをすべて読み終えたら、以下の3つを自信を持ってできるようになります。
- ▸✅ start.spring.io で 5分以内に プロジェクトを生成・起動する
- ▸✅ application.yml のマルチプロファイル (dev/prod) 分離
- ▸✅ @SpringBootApplication が内部で行う3つのこと
学習目標を チェックリストとして 手元に置き、すべてに答えられるようになったらレッスンを閉じてください。
start.spring.io でプロジェクトを作成する
Spring Boot の公式ジェネレーター
https://start.spring.io は、Spring チームが提供する公式プロジェクトジェネレーターです。依存関係をクリックで選び、zip でダウンロードします。
最初のプロジェクト設定
ページの左側フォームを以下のように入力してください:
- ▸Project: Gradle - Kotlin (Maven も可能ですが、新規プロジェクトは Gradle 推奨)
- ▸Language: Java
- ▸Spring Boot: 3.2.x (LTS 系列、2026年時点)
- ▸Group:
com.example - ▸Artifact:
demo(= プロジェクトフォルダ名) - ▸Name: demo
- ▸Description: "My first Spring app"
- ▸Package name:
com.example.demo - ▸Packaging: Jar (war は旧来の Tomcat デプロイ用)
- ▸Java: 17 (Spring Boot 3 の最小要件)
依存関係の選択 — 学習用5つ
ADD DEPENDENCIES ボタン → 検索して追加:
1. Spring Web — REST API の構築
2. Spring Boot DevTools — コード変更時に自動再起動
3. Lombok — @Getter・@Setter のボイラープレートを削除
4. H2 Database — インメモリ DB (学習に非常に便利)
5. Spring Data JPA — データベース操作の自動化
生成 → ダウンロード → 開く
GENERATE をクリック → demo.zip をダウンロード → 解凍 → IntelliJ で Open からフォルダを選択。
IntelliJ が Gradle の依存関係を自動ダウンロードします (初回は1〜3分)。右下のプログレスバーが止まれば準備完了。
実行
プロジェクトツリーで src/main/java/com/example/demo/DemoApplication.java を開きます:
左側の緑の ▶ をクリックするか、Shift + F10 を押します。コンソールに Spring Boot バナーと Tomcat started on port 8080 が表示されれば成功です。
ブラウザで http://localhost:8080 にアクセス → 404 ページが表示されます (ルートがまだないので正常)。
おめでとうございます — 本物の Web サーバーが動いています。
application.yml vs application.properties
どちらも同じ設定ファイル
src/main/resources/ の中にどちらか一方があれば十分です。
properties — キー=値 形式
yml — 階層インデント形式
どちらを使うか
ほぼすべての新規プロジェクトは application.yml — 階層構造が見えるため可読性が圧倒的に高い。
properties は古いプロジェクトや簡単な設定に残っている程度です。
よく使う設定5つ
環境別の分離 — application-{profile}.yml
起動時に --spring.profiles.active=prod または環境変数 SPRING_PROFILES_ACTIVE=prod でプロファイルを選択します。本番パスワードを git にコミットしないための標準パターンです。
@SpringBootApplication — アノテーション1つの正体
3つを合わせた アノテーション
@SpringBootApplication は実際には 3つのアノテーションをまとめたメタアノテーションです:
各アノテーションの役割
1. @Configuration
このクラスは Bean 設定クラスであると Spring に伝えます。内部に @Bean メソッドを定義できるようになります。
2. @EnableAutoConfiguration
Spring Boot のマジック。クラスパス上のライブラリを確認し、自動的に設定します。
- ▸
spring-boot-starter-webを検出 → Tomcat + Spring MVC を自動設定 - ▸H2 Database を検出 → インメモリ DB を自動接続
- ▸Spring Data JPA を検出 → JPA EntityManager を自動設定
XML 設定 100行を0行にした核心機能。これがなければ、昔の Spring 時代の設定地獄に逆戻りです。
3. @ComponentScan
このクラスが置かれているパッケージからサブパッケージまで、すべての @Component/@Service/@Repository/@Controller を見つけて Bean として登録します。
そのため DemoApplication の配置場所が重要です — すべてのコードは DemoApplication パッケージ配下に置かないと自動認識されません。
最初のコントローラー — Hello, World!
同じパッケージに HelloController.java を追加します:
サーバーを再起動 (DevTools があれば自動) した後、http://localhost:8080/hello にアクセス → Hello, Spring Boot!
これがサーバーサイドで初めてページを表示した瞬間です。
まとめ
@SpringBootApplication の一行で数十個の自動設定が有効化されます。面接で「@SpringBootApplication は何をするのですか?」と聞かれたら、上記の3点を答えられるようにしておきましょう。
🤖 AI にこのように依頼してみましょう
このレッスンの概念を理解すると、AI に具体的に指示できるようになります。曖昧な「直して」ではなく、語彙を持ったリクエスト — それがトークン節約の出発点です。
- ▸「Spring Boot 3.2 + Java 17 + Gradle + H2 でプロジェクトの骨格を作って」
- ▸「application.yml にマルチプロファイル (dev/prod) の分離を追加して」
- ▸「このプロジェクトが 8080 ではなく 9000 番ポートで起動するように設定して」
なぜこれでトークンが減るのか
概念を知らないと、AI の回答を受け取っても「それって何ですか?」と再度聞かなければなりません。その「再質問」がトークンを消費します。概念を一度しっかり学んでおけば、会話が一回で終わります。