Spring Boot入門:初心者向けに学ぶWebアプリ作成 概要

Java

はじめに

Spring BootはJavaのWebアプリケーション開発を効率化するフレームワークで、Spring Frameworkを基盤にして構築されています。通常のSpringアプリケーションの複雑な設定を簡略化し、少ないコードでWebアプリを立ち上げられるのが特徴です。この記事では、Spring Bootの環境構築を行い、プロジェクト作成の概要を学びます。


Spring Bootの概要

Spring Bootとは?
Spring BootはSpring Frameworkを使いやすくするためのプロジェクトです。通常、Springでは設定ファイルが多くなる傾向がありますが、Spring Bootはその設定を自動化し、迅速な開発をサポートします。特に、以下のようなポイントが挙げられます:

  • 自動設定:複雑な設定を自動で行い、開発者の負担を軽減
  • 埋め込みサーバー:TomcatやJettyなどのサーバーを組み込み、スタンドアロンで実行可能
  • 開発効率の向上:最小限のコードでWebアプリケーションを構築可能

開発環境のセットアップ

必要なツール

  • Java JDK:バージョン17以上を推奨
  • MavenまたはGradle:ビルドツール

Java JDKのインストール

下記ページからPCに合わせてインストーラーをダウンロードしてインストーラーを起動します。
起動後は手順通りにインストールしていきます。

Download the Latest Java LTS Free
Subscribe to Java SE and get the most comprehensive Java support available, with 24/7 global access to the experts.

Gradleの使用

今回はGradleを用いて開発します。
Macの場合は下記コマンドでinstallできます。

Bash
brew install gradle

Spring Initializrの使用
Spring Initializrは、WebベースでSpring Bootプロジェクトの雛形を作成できる便利なサービスです。以下の手順でSpring Bootプロジェクトを生成します:

  1. Spring Initializrにアクセス
  2. 必要なプロジェクトの設定を入力(例:プロジェクト名、Java、Mavenプロジェクト)
  3. 「Generate」ボタンを押してプロジェクトをダウンロード

ダウンロードしたプロジェクトを解凍し開きます。

簡単なWebアプリの作成

コントローラーの作成
コントローラーは、リクエストを受け取り、処理を行うクラスです。Spring Bootではアノテーションを用いてコントローラーを簡単に定義できます。以下に、HelloControllerというシンプルなコントローラーを作成してみましょう。

src/main/java/com/example/demo/controller/HelloController.javaに追加します。

Java
package com.example.demo.controller;

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

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, Spring Boot!";
    }
}
  • @RestController:このクラスがREST APIのコントローラーであることを示す
  • @GetMapping(“/hello”)/helloエンドポイントにGETリクエストがあった場合にメソッドを実行

build.gradleの変更

  • dependenciesにWeb依存関係を追加する
  • toolchainのJavaLanguageVersionを端末に合わせた数字に変更する。
Bash
plugins {
	id 'java'
	id 'org.springframework.boot' version '3.3.5'
	id 'io.spring.dependency-management' version '1.1.6'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(23)
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	implementation 'org.springframework.boot:spring-boot-starter-web' // Web依存関係を追加
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
	useJUnitPlatform()
}

変更が完了したら下記コマンドを実行します。

Bash
./gradlew clean build --refresh-dependencies

アプリケーションの実行方法

Spring Bootプロジェクトには組み込みサーバーがあるため、以下のコマンド一つでアプリケーションを起動できます。

Bash
./gradlew bootRun      # Gradleの場合
./mvnw spring-boot:run  # Mavenの場合

コマンドを実行すると、ブラウザでhttp://localhost:8080/helloにアクセスした際に「Hello, Spring Boot!」と表示されます。

Spring Bootの基本構成

Spring Bootプロジェクトにはいくつかの重要なファイルとディレクトリが含まれています:

  • src/main/java:アプリケーションのJavaコードを格納する
  • src/main/resources/application.properties:設定ファイル
  • src/test/java:テストコードを格納するディレクトリ

application.propertiesには、アプリケーションの設定(ポート番号、データベース接続情報など)を記述できます。

データベース接続の追加(オプション)

Spring Bootはデータベースとの連携も簡単です。たとえば、H2データベースを使ってデータベース接続を設定する場合、application.propertiesに以下を追加します。

Bash
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.h2.console.enabled=true

データベース接続が完了したら、/h2-consoleでH2データベースのコンソールにアクセスできます。

Spring Bootの拡張:依存関係の追加

Spring Bootプロジェクトでは必要な依存関係(ライブラリ)をpom.xml(Maven)またはbuild.gradle(Gradle)に追加することで、さらに機能を拡張できます。たとえば、JPA(Java Persistence API)を使用してデータの永続化を行いたい場合、Spring Data JPA依存を追加し、データベースと連携したアプリケーションを作成できます。

Spring Bootアプリケーションのビルドとデプロイ

アプリケーションが完成したら、ビルドしてデプロイすることも可能です。以下のコマンドを使ってJARファイルをビルドします。

Bash
./gradlew build       # Gradleの場合
./mvnw clean package  # Mavenの場合

ビルドしたJARファイルはtarget/(Maven)やbuild/libs/(Gradle)に生成され、以下のコマンドで実行できます。

Bash
java -jar target/demo-0.0.1-SNAPSHOT.jar

まとめ:Spring Bootでの学習ステップ

Spring BootはシンプルなWebアプリケーションから、複雑な業務システムまで幅広く利用されています。初めて学ぶ際には、基本的なコントローラーや設定ファイルの使い方を理解し、次第にデータベース連携やセキュリティ設定などへと学びを深めていきましょう。

Spring Bootの柔軟性と生産性の高さを活用し、実際にアプリケーションを作りながら学んでいくと、理解が深まります。

コメント

タイトルとURLをコピーしました