Java の基本、HTML / CSS / JavaScript、SQL を一通り扱いました。ここからは、これらをつなぐ役割の Spring Boot を使います。
Spring Boot とは
Spring Boot は、Java で Web アプリケーションを作るためのフレームワークです。フレームワークとは、アプリを作るための土台や仕組みをまとめたものです。
素の Java だけで Web アプリを作ろうとすると、HTTP 通信の処理やリクエストの解析など、自分で書くコードが大量に必要になります。Spring Boot はそうした処理を引き受けてくれるので、開発者はアプリの中身に集中できます。
| 方法 | やること |
|---|---|
| 素の Java | HTTP 処理、リクエスト解析、レスポンス生成、すべて自分で書く |
| Spring Boot | HTTP まわりはフレームワークが担当。開発者は「何を返すか」を書く |
Spring Initializr でプロジェクトを作る
Spring Boot のプロジェクトは、Spring Initializr(イニシャライザ)という Web ツールで生成します。
- ブラウザで https://start.spring.io を開く
- 次のように設定する
| 項目 | 値 |
|---|---|
| Project | Maven |
| Language | Java |
| Spring Boot | 4.x.x(最新の安定版) |
| Group | com.example |
| Artifact | demo |
| Packaging | Jar |
| Configuration | Properties |
| Java | 25 |
Spring Boot のバージョン選択肢に「SNAPSHOT」や「M4」のような表記があれば、それらは開発中・リリース前のビルドです。数字だけのバージョン(例:4.0.5)を選びます。
- 「ADD DEPENDENCIES…」をクリックし、Spring Web を追加する
- 「GENERATE」をクリックすると
demo.zipがダウンロードされる
- ZIP を展開し、
demoフォルダを VS Code で開く
「Spring Web」は、Web アプリに必要な機能(HTTP リクエストの受け取り、レスポンスの返却など)をまとめたライブラリです。
プロジェクトの中身を確認する
展開したフォルダの中で、この段階で知っておくファイルは3つだけです。
demo/
├── src/
│ └── main/
│ └── java/
│ └── com/example/demo/
│ └── DemoApplication.java ← アプリの起動クラス
├── pom.xml ← 依存ライブラリの管理ファイル
└── mvnw / mvnw.cmd ← Maven のラッパースクリプト
- DemoApplication.java — アプリケーションのエントリーポイント。Java の最初の回で書いた
mainメソッドと同じ役割 - pom.xml — 使用するライブラリの一覧を記述するファイル。Spring Initializr が自動で作ってくれる
- mvnw(mvnw.cmd) — Maven をインストールしなくてもプロジェクトをビルド・実行できるスクリプト
ほかのファイルやフォルダは今の段階では触りません。
リクエストとレスポンスの流れ
Spring Boot アプリがどのように動くかを図にします。
sequenceDiagram
participant Browser as ブラウザ
participant Spring as Spring Boot
Browser->>Spring: GET /hello
Spring->>Browser: "Hello, Spring Boot!"
ブラウザが URL にアクセスすると GET リクエストが Spring Boot に届き、@GetMapping("/hello") に対応するメソッドが呼ばれて文字列が返ります。
起動してブラウザで確認する
VS Code のターミナルを開き、demo フォルダで次のコマンドを実行します。
Windows の場合:
.\mvnw.cmd spring-boot:run
macOS / Linux の場合:
./mvnw spring-boot:run
初回は依存ライブラリのダウンロードに数分かかります。ターミナルに次のようなログが出れば起動成功です。
Started DemoApplication in X.XXX seconds
ブラウザで http://localhost:8080 を開きます。「Whitelabel Error Page」という画面が表示されます。
エラーに見えますが、これで正常です。まだ「何を返すか」を書いていないので、Spring Boot がデフォルトのエラーページを返しています。
アプリを停止するには、ターミナルで Ctrl + C を押します。
Hello を返すコントローラを書く
ブラウザからアクセスしたときに文字列を返す処理を書きます。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;
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}
新しい要素がいくつか出てきます。
| 要素 | 役割 |
|---|---|
@RestController | 「このクラスは Web リクエストを受け取るクラスだ」と Spring Boot に伝える目印 |
@GetMapping("/hello") | 「GET リクエストで /hello にアクセスされたらこのメソッドを実行する」という設定 |
return "Hello, Spring Boot!" | ブラウザに返す文字列 |
@ から始まる記述をアノテーションと呼びます。Java の文法としては「メソッドやクラスに追加情報を付ける仕組み」です。Spring Boot はアノテーションを読み取って、処理を自動で組み立てます。
ファイルを保存してから、もう一度 mvnw spring-boot:run で起動します。
ブラウザで http://localhost:8080/hello を開くと、画面に「Hello, Spring Boot!」と表示されます。
動作を確認する
ここまでの手順が正しく動いているか、次の点を確認します。
http://localhost:8080/helloに「Hello, Spring Boot!」と表示される/helloを/に変えると Whitelabel Error Page が出る(まだ/には何も設定していないため)- ターミナルに
Ctrl + Cでアプリが停止し、ブラウザでアクセスできなくなる
ここまでの整理
| やったこと | 手段 |
|---|---|
| プロジェクト作成 | Spring Initializr(start.spring.io) |
| 起動 | mvnw spring-boot:run |
| アクセス確認 | ブラウザで localhost:8080 |
| レスポンスを返す | @RestController + @GetMapping |
Java の最初の回では System.out.println でコンソールに文字を出しました。Spring Boot では return "文字列" でブラウザに文字を返します。出力先が変わっただけで、「メソッドが値を返す」という構造は同じです。
次回は、文字列ではなく JSON データを返す API を作ります。JavaScript の回で学んだ fetch で、この API からデータを取得する流れにつながります。