基本 ローカル(Spring Boot) 約25分

Spring Boot プロジェクトを作って動かす

Spring Initializr でプロジェクトを作成し、@RestController で Hello を返すまでの最小手順。

Java の基本、HTML / CSS / JavaScript、SQL を一通り扱いました。ここからは、これらをつなぐ役割の Spring Boot を使います。

Spring Boot とは

Spring Boot は、Java で Web アプリケーションを作るためのフレームワークです。フレームワークとは、アプリを作るための土台や仕組みをまとめたものです。

素の Java だけで Web アプリを作ろうとすると、HTTP 通信の処理やリクエストの解析など、自分で書くコードが大量に必要になります。Spring Boot はそうした処理を引き受けてくれるので、開発者はアプリの中身に集中できます。

方法やること
素の JavaHTTP 処理、リクエスト解析、レスポンス生成、すべて自分で書く
Spring BootHTTP まわりはフレームワークが担当。開発者は「何を返すか」を書く

Spring Initializr でプロジェクトを作る

Spring Boot のプロジェクトは、Spring Initializr(イニシャライザ)という Web ツールで生成します。

  1. ブラウザで https://start.spring.io を開く
  2. 次のように設定する
項目
ProjectMaven
LanguageJava
Spring Boot4.x.x(最新の安定版)
Groupcom.example
Artifactdemo
PackagingJar
ConfigurationProperties
Java25

Spring Boot のバージョン選択肢に「SNAPSHOT」や「M4」のような表記があれば、それらは開発中・リリース前のビルドです。数字だけのバージョン(例:4.0.5)を選びます。

Spring Initializr の設定画面
  1. 「ADD DEPENDENCIES…」をクリックし、Spring Web を追加する
Spring Web を追加した状態
  1. 「GENERATE」をクリックすると demo.zip がダウンロードされる
GENERATE ボタン
  1. ZIP を展開し、demo フォルダを VS Code で開く
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 からデータを取得する流れにつながります。