Javaの文法は一通り勉強したのに、いざ「Webアプリを作ってみよう」となった瞬間に手が止まる。
そんな経験はありませんか?私はまさにそのパターンでした。
Spring Bootを始めた初日、Whitelabel Error Pageという謎の白い画面を眺めたまま3時間溶かしています。
調べても「Eclipse前提の古い記事」と「Spring Boot 2時代の情報」が混ざっていて、初心者には何が正解か分かりにくいんですよね。
私自身、業務と個人開発でSpring Bootを触ってきた中で「最初にこれだけ知っていれば迷わなかったのに」と感じたポイントがいくつもありました。
この記事では、Javaの基礎文法を学び終えた人がSpring BootでWebアプリを動かすまでを、5ステップで解説します。
読み終わる頃には、自分のPCのブラウザに「Hello World」を表示できるようになりますよ。
Spring Bootとは?初心者向けにサクッと解説
Spring Bootとは、JavaのWebアプリ開発フレームワーク「Spring Framework」を、面倒な設定なしですぐ使える形にまとめたものです。
設定ファイルの山と格闘せずに、コードを書き始めて数分でWebサーバーを起動できます。
リクエスト受付・応答"] --> Service["@Service
ビジネスロジック"] Service --> Repository["@Repository / JPA
データアクセス"] end subgraph データ["データ層"] DB["データベース"] end Browser --> |"HTTPリクエスト"| Controller Repository --> DB
Javaの求人でもSpringスキルはド定番で、実務のWeb開発では避けて通れない存在。
「Java学習の次の一歩」として、Spring Bootはほぼ一択と言っていいレベルです。
SpringフレームワークとSpring Bootの違い
両者の関係は「部品の集合」と「全部入りスターターキット」です。
Spring Frameworkは高機能な部品群で、自分で組み合わせと設定を決める必要があります。
一方のSpring Bootは、よく使う部品と推奨設定があらかじめセットされた状態で始められます。
| 比較項目 | Spring Framework | Spring Boot |
|---|---|---|
| 初期設定 | XMLやJavaConfigを自分で書く | ほぼ自動設定 |
| Webサーバー | 別途Tomcatなどを用意 | Tomcat内蔵で即起動 |
| 依存関係の管理 | ライブラリを個別に選定 | スターターでまとめて導入 |
| 向いている人 | 細かく制御したい上級者 | 入門者・スピード重視の開発 |
昔のSpring開発はXML設定地獄と呼ばれていて、Hello Worldまでに半日かかるのもザラでした。
Spring Bootはその反省から生まれたので、初心者が最初に触るならBot…もといBoot一択です(笑)。
Spring Bootでできること
Spring Bootで作れるのはWebアプリだけではありません。実務で登場する代表例は次の4つです。
- Webアプリ:画面付きの業務システムやブログのようなサイト
- REST API:スマホアプリやフロントエンドにJSONを返すサーバー
- バッチ処理:夜間の集計やデータ連携などの定期実行処理
- DB連携:Spring Data JPAなどでデータベース操作を簡潔に記述
私の体感では、実務案件の8割は「Webアプリ or REST API + DB連携」の組み合わせです。
まずはWebアプリを1本動かせれば、残りは応用でカバーできます。
Spring Boot 4と3・2はどちらを選ぶべき?
これから学ぶなら4系一択です。Spring Boot 3系も2026年6月30日(3.5系)にOSS向けサポートが終了しています。2026年6月にリリースされたSpring Boot 4系(4.1系)が、現行の推奨バージョンです。4系もJava 17以上が必須なので、JDKは新しめのLTS版(17または21)を入れておけばOKです。
ネット上のサンプルコードには2系のままの記事も多いので注意してください。
記事の公開日とimport文(3系・4系はjavax.*ではなくjakarta.*)をチェックする癖をつけると、無駄なハマりを回避できます。
Spring Boot入門に必要な前提知識と環境
結論、Javaの基本文法とPC1台があれば始められます。有料ツールも高スペックマシンも不要。
私は数年前のノートPCで開発していますが、入門レベルなら何の問題もありません。
Javaの知識はどこまで必要?
変数・条件分岐・ループ・クラスとインスタンスの4つが分かれば十分です。ジェネリクスやラムダ式まで完璧にしてから、と考える人が多いのですが、正直それは遠回り。私も文法書を2周してから始めようとして、1周目の途中で飽きました(笑)。
足りない知識は、アプリを作りながら「必要になったら調べる」方が定着します。
手を動かす学習に切り替えるタイミングとしては、クラスが書けるようになった今がベストです。
JDK・ビルドツール・IDEの選び方
迷ったら「JDK 21 + Maven + VSCode」の組み合わせを選んでください。理由は情報量が多く、無料で、他言語にも流用できるからです。
私も一度「柔軟だから」という理由だけでGradleに移行しようとしたことがあります。
ただ設定の自由度が高い分だけ情報が分散していて、入門段階ではむしろ迷いが増えて断念しました。
| ツール | おすすめ | 理由 |
|---|---|---|
| JDK | Eclipse Temurin 21 | 無料のLTS版で実績が豊富 |
| ビルドツール | Maven | 設定が読みやすく入門記事が多い |
| IDE | VSCode | 軽量・無料・拡張機能で十分戦える |
「本格的なJava開発ならIntelliJ IDEAでは?」という声もあり、実際その通りです。
ただ有料版の機能が本領なので、入門段階では使い慣れたVSCodeで十分。
私もSpring Bootの学習はVSCodeで始めて、不満を感じたタイミングで乗り換えを検討する方針にしています。
Spring Boot環境構築の手順3ステップ(VSCode編)
環境構築は「JDK導入 → 拡張機能 → プロジェクト作成」の3ステップで、30分あれば終わります。タイトルの5ステップのうち、前半3つがここです。1つずつ進めていきましょう。
ステップ1:JDKをインストールする
Adoptiumの公式サイトからEclipse Temurin 21(LTS)をダウンロードして、インストーラーを実行します。
完了したらターミナルで確認しましょう。
java -version
# openjdk version "21.0.x" などと表示されれば成功バージョン番号が表示されない場合は、PCの再起動かPATH設定の見直しで大抵解決します。
ステップ2:VSCodeに拡張機能を入れる
VSCodeの拡張機能タブで、次の2つをインストールします。
- Extension Pack for Java:Java開発の基本セット(デバッガー・補完など)
- Spring Boot Extension Pack:Spring Boot専用の支援機能セット
パック形式なので、2回のクリックで必要な拡張機能がまとめて入ります。個別に探し回る必要はありません。
ステップ3:Spring Initializrでプロジェクトを作る
VSCodeでコマンドパレット(Ctrl+Shift+P / Cmd+Shift+P)を開きます。
「Spring Initializr: Create a Maven Project」を実行し、選択肢は次の通りに進めればOKです。
- Spring Bootバージョン:4系の最新安定版(4.1系)
- 言語:Java
- Group Id / Artifact Id:例として
com.example/demo - 依存関係:Spring Web と Thymeleaf の2つを選択
保存先を選ぶと、雛形一式が入ったプロジェクトが自動生成されます。
ブラウザでSpring Initializrの公式サイト(start.spring.io)を使っても同じものが作れますが、VSCode内で完結する方がラクです。
Hello Worldで最初のWebアプリを動かす
残り2ステップは「コントローラー作成」と「起動確認」です。ここまで来れば、Webアプリが動くまであと10分。書くコードは20行もありません。
ステップ4:コントローラーを作る
コントローラーとは、ブラウザからのアクセス(URL)を受け取って処理を振り分けるクラスです。
src/main/java/com/example/demo 配下に HelloController.java を作成します。
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
// 「/hello」へのアクセスを処理するコントローラー
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello World!";
}
}@RestController と @GetMapping の2つのアノテーションだけで、URLと処理の紐付けが完了します。XMLは1行も書きません。楽すぎて拍子抜けしますよ。
ステップ5:アプリを起動してブラウザで確認する
プロジェクト直下のターミナルで、次のコマンドを実行します。
# macOS / Linux
./mvnw spring-boot:run
# Windows
mvnw.cmd spring-boot:runログの最後に「Started DemoApplication」と出たら起動成功。
ブラウザで http://localhost:8080/hello を開いて、「Hello World!」が表示されれば5ステップ完走です。おめでとうございます!
初回起動時はTomcatを別途インストールしていないのにWebサーバーが動く点に注目してください。
Spring BootにはTomcatが内蔵されているので、コマンド1つでサーバーごと立ち上がります。
Thymeleafで画面を表示する
文字列だけでは味気ないので、HTMLの画面も返してみましょう。
Thymeleafとは、Spring Boot標準のテンプレートエンジンで、HTMLファイルにJava側のデータを埋め込める仕組みです。
src/main/resources/templates/index.html を作成します。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<h1 th:text="${message}">ここにメッセージが入る</h1>
</body>
</html>コントローラー側は @RestController ではなく @Controller を使い、テンプレート名を返します。
package com.example.demo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class IndexController {
@GetMapping("/")
public String index(Model model) {
model.addAttribute("message", "Thymeleafから表示しています");
return "index"; // templates/index.html を表示
}
}再起動して http://localhost:8080/ にアクセスすると、Javaから渡した文字列がHTMLに埋め込まれて表示されます。
データと画面をつなぐ感覚がつかめると、一気に「Webアプリ作ってる感」が出てきますよ。
入門でつまずきやすいエラー2つと対処法
入門者が最初にハマるエラーは「ポート競合」と「Whitelabel Error Page」の2つに集約されます。私は両方フルコンボでした。
原因さえ知っていれば5分で解決できるので、先に対処法を頭に入れておきましょう。
ポート8080が使用中で起動できない
「Port 8080 was already in use」と出る場合、前回起動したアプリが残っているか、他のツールが8080番を使っています。
前回のプロセスを止めるのが正攻法ですが、手っ取り早くポート自体を変える方法もあります。
src/main/resources/application.properties に1行追加するだけです。
server.port=8081Whitelabel Error Pageが表示される
白い画面に「Whitelabel Error Page」と出るのは、アクセスしたURLに対応する処理が見つからないサインです。
原因の9割は次の3つのどれか。
- URLのタイプミス:
@GetMappingのパスとアクセス先が一致していない - アノテーションの付け忘れ:
@RestControllerや@Controllerがない - パッケージ配置ミス:コントローラーがメインクラスと別系統のパッケージにある
特に3つ目は初見殺しです。
Spring Bootはメインクラスのパッケージ配下しか自動スキャンしないので、コントローラーは com.example.demo の下に置いてください。
私が初日に3時間溶かした犯人もコイツでした。
Spring Boot入門後の学習ロードマップ
Hello Worldの次は「本や公式ガイドで体系立てて学びつつ、小さいアプリを作る」のが最短ルートです。
チュートリアルを眺めるだけの期間が長いと確実に飽きるので、インプットとアウトプットは1:2くらいの比率をおすすめします。
おすすめの入門書と学習サイト
定番は「Spring解体新書」で、DIやアノテーションの仕組みを日本語で丁寧に追えます。
書籍が苦手なら、Spring公式のGuides(spring.io/guides)が意外と親切です。
英語ですが、15〜30分で終わる単機能チュートリアルが50本以上あり、コードをコピーしながら進めるだけでも学びがあります。
選ぶ際の注意点は1つだけ。
Spring Boot 3系以降(2022年11月以降の出版・更新、できれば2026年6月リリースの4系に対応したもの)かを必ず確認してください。
2系の本は情報が古く、import文の違いでコードがそのまま動きません。
次に作ると力がつくアプリ3選
実力アップに直結した順で、私のおすすめは次の3つです。
- TODOアプリ:CRUD(登録・表示・更新・削除)とDB連携の基本が一通り身につく
- REST API:JSONを返すAPIを作るとフロントエンドとの連携が理解できる
- ログイン機能付きメモアプリ:Spring Securityに触れると実務レベルに近づく
TODOアプリは「またか」と思うほど定番ですが、定番になるだけの理由があります。
Webアプリに必要な要素が過不足なく詰まっているので、騙されたと思って1回作ってみてください。
Spring Boot入門でよくある質問(FAQ)
検索されやすい疑問をまとめました。気になるところだけ拾い読みしてください。
Q1. Spring Bootの学習にはどのくらい期間がかかる?
Javaの基礎がある人なら、Hello Worldまで1日、簡単なCRUDアプリまで2〜4週間が目安です。毎日1時間でも手を動かせば、1〜2か月で個人開発に使えるレベルに届きます。
Q2. EclipseやIntelliJではなくVSCodeで大丈夫?
はい、入門〜中級までは問題ありません。Spring Boot Extension Packで補完・デバッグ・起動が一通りそろいます。大規模開発やリファクタリング機能を重視する段階になったら、IntelliJ IDEAを検討すれば十分です。
Q3. MavenとGradleはどちらを使うべき?
入門者にはMavenをおすすめします。設定ファイル(pom.xml)が定型的で読みやすく、解説記事の数も多いためです。Gradleは記述が柔軟で高速ですが、その柔軟さが入門時には逆に混乱のもとになります。
Q4. Spring Boot 2系の本しか持っていない場合は買い替えるべき?
買い替えを推奨します。3系・4系ではimport文がjavax.*からjakarta.*に変わり、サンプルコードがそのまま動かない場面が多いためです。概念の学習には使えますが、写経には向きません。
Q5. Spring Bootを学べば就職・転職に有利?
有利です。JavaのWeb開発案件ではSpring系がデファクトスタンダードで、求人票に「Spring Boot経験」と明記されるケースが目立ちます。ポートフォリオとしてCRUDアプリを1本用意できると、未経験からの転職でも話が早くなります。
Q6. データベース連携はいつ学べばいい?
Hello WorldとThymeleafでの画面表示ができた直後がベストタイミングです。Spring Data JPAとH2データベース(設定不要のお試し用DB)を使えば、環境構築なしでDB連携を体験できます。
まとめ:Spring Boot入門の3つのポイント
Spring Boot入門で押さえるべきポイントを3つに圧縮します。
- バージョンは4系一択:3系もOSSサポートが終了。JDKは17以上(推奨は21)を使う
- 環境はVSCode + Mavenで十分:無料の構成で入門〜中級まで戦える
- 完璧な準備より先に手を動かす:Hello World → Thymeleaf → TODOアプリの順で進める
フレームワークの学習は最初の1画面を出すまでが一番しんどくて、そこを越えると急に楽しくなります。
私も白い画面と3時間格闘した翌日には、Thymeleafで画面を出してニヤニヤしていました。
この記事の5ステップで、まずは「Hello World!」までたどり着いてください。動いた瞬間の小さな達成感が、次の学習を引っ張ってくれますよ。




