Spring BootをMavenでセットアップする方法
新人
「Spring BootをMavenでセットアップしたいのですが、どうすればいいですか?」
先輩
「Mavenを使うと、Spring Bootの依存関係の管理が簡単になりますよ。まずはSpring Bootの基本から説明しましょう。」
新人
「MavenとGradleの違いは何ですか?」
先輩
「MavenはXMLベースのビルドツールで、標準化されているのが特徴です。一方、Gradleはスクリプトベースでカスタマイズが柔軟ですよ。それでは詳しく見ていきましょう!」
1. Spring Bootとは?
Spring Bootは、JavaでWebアプリケーションを簡単に開発できるフレームワークです。Spring Frameworkの拡張版であり、設定が少なく、組み込みサーバーがあるため、開発がスムーズに行えます。
Spring Bootの主な特徴:
- 最小限の設定でWebアプリケーションを開発可能
- 組み込みTomcatにより、すぐにアプリを実行できる
- MavenやGradleを使用した依存関係管理
2. Mavenとは?(Gradleとの違い)
Mavenは、Javaプロジェクトのビルドや依存関係の管理を行うツールです。
Gradleとの違い:
- MavenはXMLベースの
pom.xmlを使用 - Gradleはスクリプトベースで、より柔軟な設定が可能
- Mavenは標準化されており、多くのプロジェクトで使用されている
3. Spring BootをMavenでセットアップするメリット
Spring BootプロジェクトをMavenで管理することで、次のようなメリットがあります。
- 標準化された
pom.xmlで管理が容易 - 依存関係の自動管理ができる
- ビルドやテストが一貫して実行可能
次のステップでは、実際にEclipse(Pleiades)でSpring Boot + Mavenプロジェクトを作成してみましょう。
4. Eclipse(Pleiades)でSpring Boot + Mavenプロジェクトを作成する手順
ここでは、Eclipse(Pleiades)を使用してSpring Boot + Mavenプロジェクトを作成する手順を説明します。
4.1 新しいSpring Bootプロジェクトの作成
Eclipseを起動し、以下の手順でSpring Bootプロジェクトを作成します。
- 「ファイル」メニューから「新規」→「プロジェクト」を選択
- 「Spring Boot」カテゴリの「Spring Bootプロジェクト」を選択し「次へ」をクリック
- プロジェクト名を入力し、「ビルドツール」で「Maven」を選択
- 「Javaバージョン」を適切なバージョン(例: 17)に設定
- 「次へ」をクリックし、Spring Bootのバージョンを選択(最新の安定版を推奨)
- 「完了」をクリックすると、プロジェクトが作成されます
4.2 プロジェクトのディレクトリ構成
プロジェクトが作成されると、以下のようなディレクトリ構成になります。
project-root/
├── src/
│ ├── main/
│ │ ├── java/com/example/demo/
│ │ │ ├── DemoApplication.java
│ │ ├── resources/
│ │ ├── application.properties
├── pom.xml
├── .mvn/
├── mvnw
├── mvnw.cmd
DemoApplication.java がアプリケーションのエントリーポイントとなります。
5. Mavenの設定ファイル(pom.xml)の基本構成
Spring Bootプロジェクトでは、pom.xml を使ってビルドの設定や依存関係の管理を行います。
5.1 pom.xmlの基本設定
以下は、Spring Bootプロジェクトの基本的なpom.xmlの設定例です。
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
<relativePath />
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
この設定により、Spring Bootの基本的な機能が使用可能になります。
6. 必要な依存関係の追加とプロジェクトの同期
Spring Bootプロジェクトで追加の機能を利用する場合、pom.xml に依存関係を追加します。
6.1 依存関係の追加
例えば、Spring BootのThymeleafテンプレートエンジンを使用する場合、以下のように追加します。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
6.2 依存関係の更新
新しい依存関係を追加した後、プロジェクトに反映させるには以下の方法で更新を行います。
- Eclipseの「Maven」メニューで「プロジェクトの更新(Update Project)」をクリック
- または、ターミナルで以下のコマンドを実行
mvn clean install
これで、Spring Boot + Mavenの環境が整いました。次のステップでは、アプリケーションを起動し、簡単な動作確認を行います。
7. Spring Bootアプリの起動方法と簡単な動作確認
Spring BootのMavenプロジェクトを作成し、依存関係を設定したら、実際にアプリケーションを起動してみましょう。
7.1 Spring Bootアプリの起動
Spring Bootアプリケーションを起動するには、以下の方法があります。
- Eclipseの「Spring Bootアプリケーション」として実行
- または、
DemoApplication.javaを開き、右クリックして「Javaアプリケーションとして実行」 - ターミナルで以下のコマンドを実行
mvn spring-boot:run
7.2 実行結果の確認
正常に起動すると、コンソールに以下のようなログが表示されます。
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.1.0)
このログが表示されていれば、Spring Bootアプリが正常に起動しています。
7.3 簡単な動作確認
ブラウザを開き、http://localhost:8080 にアクセスしてください。初期状態ではエラーページが表示されます。
次のステップでは、簡単な@Controllerを作成し、実際にページを表示させる方法を説明します。
8. 簡単なSpring MVCのコントローラーを作成して実行する
Spring Bootでは、MVC(Model-View-Controller)を使用して、リクエストを処理できます。ここでは、@Controllerを使って簡単なWebページを作成してみます。
8.1 コントローラーの作成
com.example.demo.controller パッケージ内に、以下のHomeControllerクラスを作成します。
package com.example.demo.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.ui.Model;
@Controller
public class HomeController {
@GetMapping("/")
public String home(Model model) {
model.addAttribute("message", "Spring Boot + Maven のセットアップ完了!");
return "home";
}
}
8.2 Viewの作成(Thymeleaf)
src/main/resources/templates/home.html に以下のHTMLを作成します。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>ホームページ</title>
</head>
<body>
<h1>ようこそ!</h1>
<p th:text="${message}"></p>
</body>
</html>
8.3 コントローラーの動作確認
Spring Bootアプリを再起動し、http://localhost:8080/ にアクセスすると、作成したページが表示されます。
9. Eclipseでのデバッグ方法とエラー解決の基本
Spring Bootアプリを開発する際には、Eclipseのデバッグ機能を活用すると便利です。ここでは、基本的なデバッグ方法を紹介します。
9.1 ブレークポイントを設定する
ソースコードの任意の行で、左端の行番号をクリックすると、ブレークポイントが設定されます。これにより、実行時にコードの動作を確認できます。
9.2 デバッグモードで実行する
EclipseでSpring Bootアプリをデバッグモードで実行するには、以下の手順を実行します。
DemoApplication.javaを右クリックし、「デバッグ」→「Javaアプリケーション」として実行- または、ターミナルで以下のコマンドを実行
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n"
9.3 エラーが発生した場合の対処法
Spring Boot開発中に発生する主なエラーとその解決方法を紹介します。
ポートがすでに使用されている
エラー例:
org.apache.catalina.LifecycleException: Protocol handler start failed
対処法:ターミナルで以下のコマンドを実行し、使用中のプロセスを終了する。
kill -9 $(lsof -t -i:8080)
依存関係の問題
エラー例:
Could not resolve dependency: org.springframework.boot:spring-boot-starter-web
対処法:以下のコマンドでMavenの依存関係を再インストールする。
mvn clean install
これでSpring Bootアプリのセットアップから実行、デバッグまでの基本が理解できたと思います。
まとめ
Spring BootをMavenでセットアップする手順を一通り見てきましたが、改めて振り返ってみると、開発環境の構築はアプリケーションづくりの土台となる大切な工程であり、落ち着いて順番を追っていけば誰でも確実に理解できる内容だと感じられるはずです。とくにMavenは、依存関係を明確に管理し、Spring Bootの構成をわかりやすく整理してくれる強力なツールであるため、プロジェクト全体の見通しが良くなり、複数人での開発にも向いています。今回の記事で扱ったように、pom.xmlの基本構成や依存関係の追加、ビルド手順を押さえておくことで、Spring Bootで行うWebアプリケーション開発の基盤がしっかり固まり、スムーズにコードを書く前段階へと進むことができます。 また、Spring Bootは最小限の設定でアプリケーションが構築できるという特徴があり、組み込みTomcatや自動構成によって、初心者でも比較的迷わずアプリを起動できるように設計されています。実際にMavenプロジェクトを作成し、依存関係を追加してアプリを実行する流れは、開発者が何度も繰り返し体験する部分でもあるため、この記事の内容を繰り返し見返すことで確かな理解が身につきやすくなるでしょう。 以下に、記事内で触れてきた内容を踏まえて、pom.xmlの依存関係管理がどのように動作するのか、もうひとつ簡単な例を補足として示します。
追加依存関係のサンプルコード
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
このように依存関係を追加することで、Spring MVCやテンプレートエンジン、データ連携といった複数の機能を自然に取り入れられる点がMavenの魅力です。プロジェクトの成長に合わせて必要な機能を柔軟に拡張できるため、アプリケーションの方向性が変わったときにも落ち着いて対応できます。 さらに、EclipseやPleiadesでの操作も身につけておくと、開発環境の切り替えやデバッグ作業もスムーズになり、日常的な開発効率が高まります。特にSpring Bootはログ出力が豊富で、アプリ起動時に何が行われているかを確認しやすいため、問題が起きた際に原因へたどり着く手がかりが多いのも強みです。 Spring MVCのコントローラー作成やThymeleafでの画面表示を体験することで、Webアプリケーションの基本的な流れも理解できたかと思います。最初は難しく感じる部分もありますが、手を動かして実際に動作を確認すると、仕組みが徐々に腑に落ちるようになり、サーバーサイドの開発がぐっと楽しくなるはずです。 デバッグの基礎に触れたり、よくあるエラーと解決方法を確認したりすることで、実務でも遭遇する問題へ備えることができ、安心してSpring Bootの開発を進められるようになります。とくにポート競合や依存関係エラーは多くの開発者が通る道なので、今回の内容を覚えておくと役に立つ場面が必ず訪れるでしょう。
生徒:Spring BootとMavenの関係がようやく理解できました。pom.xmlで依存関係を管理する仕組みも思っていたよりわかりやすかったです。
先生:そうだね。最初は難しそうに見えても、ひとつひとつの動きを見ていけばしっかり整理されていることに気づけるよ。
生徒:コントローラーを作ってThymeleafで表示させる流れも、実際に動かしてみると感動しますね。アプリケーションってこうして動いているんだと実感できました。
先生:それは良い気づきだね。Spring Bootは、動作確認しながら学べるところも魅力のひとつだよ。
生徒:依存関係エラーやポートの問題も、どういう理由で起きるのか知っているだけで怖さが減りました。
先生:エラーは理解すれば味方になるからね。仕組みを把握しておくと解決も早くなるよ。
生徒:今回の内容をもとに、次はデータベース連携やREST APIづくりにも挑戦してみたいです!
先生:いいね。その意欲があればどんどん成長できるよ。次のステップも一緒に取り組んでいこう。