はじめに
この記事では、Spring Bootで基本的なWebアプリケーションを構築する方法を解説します。具体的には、コントローラとサービスの作成を通じて、リクエストの処理方法とビジネスロジックの分離を学びます。エンジニア初心者でも理解できるように、各ステップを丁寧に説明していきます。
コントローラとサービスとは?
Spring Bootでは、Webアプリケーションを分かりやすくするために「コントローラ」と「サービス」という役割を分けます。
- コントローラ:ユーザーからのリクエストを受け取り、適切な処理へ導く役割を持つ。通常、APIのエントリーポイントとして機能します。
- サービス:ビジネスロジックやアプリケーションの主な機能を提供し、コントローラから呼び出されます。データの操作や処理の流れを管理します。
プロジェクトを作成
まず、Spring Bootのプロジェクトを作成します。Spring Initializrを使うと、必要な依存関係を含んだプロジェクトを簡単に生成できます。
やり方はこちら

Spring Boot基礎:Gradleを使ったプロジェクト作成と依存関係の追加
Spring Bootの基本をGradleで学ぼう!Spring Initializrを使ったプロジェクト作成から依存関係の追加、アプリケーションの起動方法までを初心者向けに解説します。
コントローラの作成
コントローラは、HTTPリクエストを処理する役割を担い、ユーザーとアプリケーションのインターフェースになります。ここでは、シンプルなメッセージを返すコントローラを作成してみましょう。
コントローラのコード例
- プロジェクト内に
controller
パッケージを作成します。 - パッケージ内に
HelloController.java
という名前で新しいクラスを作成し、以下のコードを記述します。
Java
package com.example.demo.controller;
import com.example.demo.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api")
public class HelloController {
private final HelloService helloService;
@Autowired
public HelloController(HelloService helloService) {
this.helloService = helloService;
}
@GetMapping("/hello")
public String sayHello() {
return helloService.getHelloMessage();
}
}
コードの解説
@RestController
:このクラスがコントローラであることを示します。@RequestMapping("/api")
:コントローラ全体に適用するURLのプレフィックスを設定します。@GetMapping("/hello")
:/api/hello
というエンドポイントでアクセス可能なHTTP GETリクエストを処理します。HelloService
:サービスを呼び出してメッセージを取得します。
サービスの作成
サービスクラスは、ビジネスロジックを実装するための場所です。ここでは、コントローラから呼び出されるシンプルなサービスを作成します。
サービスのコード例
- プロジェクト内に
service
パッケージを作成します。 - パッケージ内に
HelloService.java
という名前で新しいクラスを作成し、以下のコードを記述します。
Java
package com.example.demo.service;
import org.springframework.stereotype.Service;
@Service
public class HelloService {
public String getHelloMessage() {
return "Hello, Spring Boot!";
}
}
コードの解説
@Service
:このクラスがサービス層であることを示します。getHelloMessage()
:コントローラから呼び出され、メッセージを返します。このメッセージがユーザーに表示される内容になります。
アプリケーションの実行
サービスとコントローラが完成したら、アプリケーションを実行して動作を確認します。
- ブラウザで
http://localhost:8080/api/hello
にアクセスします。 - 正しく設定されていれば、「Hello, Spring Boot!」というメッセージが表示されます。
コントローラとサービスを使った設計のポイント
- 役割の分離:コントローラはリクエスト処理、サービスはビジネスロジックを担当します。役割分担を行うことで、コードが読みやすくなり、メンテナンスが容易になります。
- 依存性の注入:Springでは
@Autowired
を使用して依存性注入(DI)を行い、テストやコードの再利用が簡単になります。
依存性の注入に関しては、理解が難しいので別記事にまとめました。

Java初心者必見!SpringのDI(依存性注入)をわかりやすく解説
Java Spring初心者向けに、DI(依存性注入)の基本をわかりやすく解説します。DIの仕組みやメリット、実装方法まで丁寧に紹介。この記事を読めば、Springでの開発がスムーズになります!
まとめ
Spring Bootでコントローラとサービスを使った基本的なWebアプリケーションの構成を学びました。エンドポイントからのリクエストを処理し、サービスでビジネスロジックを実装することにより、シンプルで拡張性のあるコードを書くことができます。この方法を理解すれば、さらに複雑な機能もスムーズに実装できるようになるでしょう。
このチュートリアルを基に、他のサービスやコントローラも作成し、より複雑なアプリケーションに挑戦してみてください。
コメント