JavaのSpring Bootで簡単Webアプリ開発

先生

「Spring Boot、マジ卍!JavaのWeb開発がこんなに楽になるなんて、感動しかない!」

Spring Bootとは?Java Webアプリ開発を爆速化!

Spring Bootは、JavaでのWebアプリケーション開発を劇的に効率化するフレームワークです。設定の自動化や組み込みサーバーなど、すぐに開発を始められる便利な機能が満載。この記事では、Spring Bootを使って簡単なWebアプリケーションを開発する手順をわかりやすく解説します。

従来のJava Webアプリケーション開発では、XMLファイルでの煩雑な設定や、TomcatなどのWebサーバーの準備が必要でした。Spring Bootは、これらの面倒な作業を肩代わりし、開発者はビジネスロジックの実装に集中できます。

Spring Initializrを使うことで、プロジェクトの雛形を簡単に作成できます。必要な依存関係を選択するだけで、すぐに開発を始められる状態になります。

開発環境の準備:Spring Initializrでプロジェクト作成

まずは、Spring Initializr(https://start.spring.io/)にアクセスします。

以下の項目を入力・選択します。

* Project: Gradle – Groovy

* Language: Java

* Spring Boot: (推奨されている最新のバージョン)

* Group: com.example

* Artifact: demo

* Packaging: Jar

* Java: 17 (または11)

* Dependencies: Spring Web

「GENERATE」ボタンをクリックして、プロジェクトのZIPファイルをダウンロードします。

ダウンロードしたZIPファイルを解凍し、IntelliJ IDEAやEclipseなどのIDEで開きます。

簡単なWebアプリ作成:Hello Worldを表示

src/main/java/com/example/demoの中に、HelloController.javaという名前の新しいファイルを作成し、以下のコードを記述します。

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/")
    public String hello() {
        return "Hello, World!";
    }
}

このコードは、ルートURL(/)にアクセスした際に「Hello, World!」という文字列を返すシンプルなAPIエンドポイントを定義しています。

IDEからアプリケーションを実行します。Gradleを使用している場合は、./gradlew bootRunコマンドを実行します。

ブラウザでhttp://localhost:8080/にアクセスすると、「Hello, World!」と表示されるはずです。

ThymeleafでHTMLを表示:動的なWebページ

Thymeleafは、Spring Bootでよく使われるテンプレートエンジンです。これを使うことで、動的なHTMLページを簡単に作成できます。

まず、pom.xml (Mavenの場合) または build.gradle (Gradleの場合) にThymeleafの依存関係を追加します。

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
}

次に、src/main/resources/templatesディレクトリにhello.htmlという名前のHTMLファイルを作成し、以下のコードを記述します。

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'"></p>
</body>
</html>

HelloController.javaを以下のように修正します。

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HelloController {

    @GetMapping("/hello")
    public String hello(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "hello";
    }
}

ブラウザでhttp://localhost:8080/hello?name=YourNameにアクセスすると、「Hello, YourName!」と表示されます。nameパラメータを指定しない場合は、「Hello, World!」と表示されます。

参考リンク

まとめ

Spring Bootを使うことで、JavaでのWebアプリケーション開発が非常に簡単になることを実感できたかと思います。Spring Initializrでプロジェクトを生成し、簡単なコントローラーを作成するだけで、Webアプリケーションを起動できます。

さらにThymeleafなどのテンプレートエンジンを使うことで、動的なWebページも簡単に作成できます。Spring Bootの学習を進めて、より高度なWebアプリケーション開発に挑戦してみてください。