STSで始めるSpring Boot:開発環境構築からサンプルアプリ作成まで

はい、承知いたしました。STS(Spring Tool Suite)を使用してSpring Bootの開発環境を構築し、サンプルアプリケーションを作成するまでの詳細な手順を解説する記事を作成します。


STSで始めるSpring Boot:開発環境構築からサンプルアプリ作成まで

Spring Bootは、スタンドアロンで実行可能な、プロダクションレベルのSpringアプリケーションを最小限の設定で容易に作成できるフレームワークです。STS(Spring Tool Suite)は、Spring Boot開発を支援するために設計されたEclipseベースのIDEです。この記事では、STSのインストールから環境構築、そして簡単なサンプルアプリケーションの作成までをステップバイステップで解説します。

1. STSのインストール

まず、Spring Boot開発の強力な味方であるSTSをインストールしましょう。STSはEclipseをベースにしているため、Java Development Kit (JDK) が事前にインストールされている必要があります。

1.1 JDKのインストール

JDKがインストールされていない場合は、以下の手順でインストールしてください。

  1. Java SE Development Kitのダウンロード: OracleのウェブサイトからJDKをダウンロードします。https://www.oracle.com/java/technologies/javase-downloads.html
  2. JDKのインストール: ダウンロードしたインストーラを実行し、指示に従ってJDKをインストールします。
  3. 環境変数の設定: JAVA_HOME 環境変数をJDKのインストールディレクトリに設定します。また、PATH 環境変数に %JAVA_HOME%\bin を追加します。

    • Windowsの場合: システム環境変数の設定画面で、JAVA_HOME を作成し、JDKのインストールディレクトリ(例: C:\Program Files\Java\jdk1.8.0_291)を設定します。PATH 変数に ;%JAVA_HOME%\bin を追加します。
    • macOS/Linuxの場合: .bash_profile または .zshrc ファイルに以下の行を追加します。

      bash
      export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
      export PATH=$PATH:$JAVA_HOME/bin

      (JDKのバージョンとインストールディレクトリは、実際にインストールしたものに合わせてください。)

  4. 動作確認: コマンドプロンプトまたはターミナルで java -version と入力し、JDKのバージョン情報が表示されることを確認します。

1.2 STSのダウンロードとインストール

STSは以下の手順でダウンロードし、インストールします。

  1. STSのダウンロード: SpringのウェブサイトからSTSをダウンロードします。https://spring.io/tools STSは、プラットフォーム(Windows、macOS、Linux)に合わせて提供されています。
  2. STSの解凍: ダウンロードしたZIPファイルを任意のディレクトリに解凍します。インストールは不要で、解凍したディレクトリがそのままSTSのインストールディレクトリとなります。
  3. STSの起動: 解凍したディレクトリ内の STS.exe (Windows) または STS (macOS/Linux) を実行します。

1.3 STSの初期設定

STSを初めて起動すると、ワークスペースの選択画面が表示されます。ワークスペースは、プロジェクトのソースコードや設定ファイルなどを保存する場所です。

  1. ワークスペースの選択: デフォルトのワークスペースを使用するか、新しいワークスペースを作成して選択します。
  2. Welcome画面: STSのWelcome画面が表示されます。この画面から、新しいプロジェクトの作成や既存プロジェクトのインポートなどが行えます。

2. Spring Bootプロジェクトの作成

STSが起動したら、いよいよSpring Bootプロジェクトを作成します。

2.1 新規Spring Starterプロジェクトの作成

  1. File > New > Spring Starter Project: メニューから File > New > Spring Starter Project を選択します。
  2. New Spring Starter Projectウィザード: 次のウィザード画面で、プロジェクトの設定を行います。

    • Name: プロジェクト名を入力します (例: hello-spring-boot)。
    • Type: Maven Project または Gradle Project を選択します。MavenはApacheによって提供されるプロジェクト管理ツールであり、Gradleはより柔軟で強力なビルドツールです。どちらを選択しても構いませんが、この記事ではMavenを前提とします。
    • Packaging: Jar を選択します。Spring Bootアプリケーションは通常、実行可能なJARファイルとしてパッケージングされます。
    • Java Version: 使用するJavaのバージョンを選択します。
    • Group: グループIDを入力します (例: com.example)。
    • Artifact: アーティファクトIDを入力します (プロジェクト名と同じでも構いません)。
    • Version: バージョンを指定します (デフォルトのままで構いません)。
    • Description: プロジェクトの説明を入力します。
    • Package: パッケージ名を入力します (例: com.example.hello)。
  3. Dependenciesの選択: 次の画面で、プロジェクトに必要な依存関係を選択します。ここでは、以下の依存関係を選択します。

    • Web: Spring Web
    • Thymeleaf: Thymeleaf (テンプレートエンジン)
    • Spring Data JPA: Spring Data JPA (データベースアクセスを簡素化)
    • H2 Database: H2 Database (インメモリデータベース)
    • Spring Boot DevTools: Spring Boot DevTools (開発支援ツール)

    Dependenciesの説明:

    • Spring Web: RESTful Webサービスを構築するための基本的な依存関係です。
    • Thymeleaf: サーバーサイドJavaテンプレートエンジンです。Webアプリケーションのビュー層を構築するために使用されます。
    • Spring Data JPA: Java Persistence API(JPA)を使用してデータベースアクセスを簡素化します。
    • H2 Database: 組み込み可能なインメモリデータベースです。開発やテストに便利です。
    • Spring Boot DevTools: 開発時のライブリロードや自動再起動など、開発を効率化するためのツールを提供します。
  4. Finish: 設定が完了したら、Finish ボタンをクリックします。STSがプロジェクトを自動的に生成し、必要な依存関係をダウンロードします。

3. サンプルアプリケーションの作成

Spring Bootプロジェクトが作成されたら、簡単なWebアプリケーションを作成してみましょう。

3.1 コントローラの作成

  1. ソースフォルダの作成: src/main/java フォルダの下に、コントローラクラスを格納するパッケージを作成します (例: com.example.hello.controller)。
  2. コントローラクラスの作成: 作成したパッケージに、新しいJavaクラスを作成します (例: HelloController.java)。
  3. コントローラクラスの記述: 作成したクラスに、以下のコードを追加します。

    “`java
    package com.example.hello.controller;

    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";
    }
    

    }
    “`

    コードの説明:

    • @Controller: このクラスがSpring MVCのコントローラであることを示します。
    • @GetMapping("/hello"): /hello というURLへのGETリクエストをこのメソッドで処理することを示します。
    • @RequestParam(name="name", required=false, defaultValue="World") String name: リクエストパラメータ name を取得します。required=false はパラメータが必須でないことを、defaultValue="World" はパラメータが指定されなかった場合のデフォルト値を指定します。
    • Model model: ビューにデータを渡すためのオブジェクトです。
    • model.addAttribute("name", name): name という名前で、name 変数の値をビューに渡します。
    • return "hello": hello.html という名前のビューを返します。Thymeleafがこのビューを処理し、HTMLを生成します。

3.2 ビューの作成

  1. テンプレートフォルダの作成: src/main/resources/templates フォルダを作成します。
  2. ビューファイルの作成: 作成したフォルダに、新しいHTMLファイルを作成します (例: hello.html)。
  3. ビューファイルの記述: 作成したファイルに、以下のコードを追加します。

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

    コードの説明:

    • <html xmlns:th="http://www.thymeleaf.org">: Thymeleafを使用することを示します。
    • <p th:text="'Hello, ' + ${name} + '!'" />: name 変数の値をHTMLに埋め込みます。${name} は、コントローラから渡された name の値を参照します。

3.3 アプリケーションの実行

  1. アプリケーションの実行: STSの Project Explorer ビューで、プロジェクトを右クリックし、Run As > Spring Boot App を選択します。
  2. アプリケーションの確認: ブラウザで http://localhost:8080/hello にアクセスします。”Hello, World!” と表示されるはずです。
  3. パラメータの指定: ブラウザで http://localhost:8080/hello?name=YourName にアクセスします。”Hello, YourName!” と表示されるはずです。

4. データベース連携

次に、データベースと連携する簡単な例を見てみましょう。ここでは、H2 Databaseを使用します。

4.1 Entityの作成

  1. パッケージの作成: src/main/java フォルダの下に、エンティティクラスを格納するパッケージを作成します (例: com.example.hello.entity)。
  2. エンティティクラスの作成: 作成したパッケージに、新しいJavaクラスを作成します (例: Message.java)。
  3. エンティティクラスの記述: 作成したクラスに、以下のコードを追加します。

    “`java
    package com.example.hello.entity;

    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;

    @Entity
    public class Message {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    private String text;
    
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public String getText() {
        return text;
    }
    
    public void setText(String text) {
        this.text = text;
    }
    

    }
    “`

    コードの説明:

    • @Entity: このクラスがJPAのエンティティであることを示します。
    • @Id: id フィールドが主キーであることを示します。
    • @GeneratedValue(strategy=GenerationType.AUTO): 主キーの自動生成戦略を指定します。

4.2 Repositoryの作成

  1. パッケージの作成: src/main/java フォルダの下に、リポジトリインタフェースを格納するパッケージを作成します (例: com.example.hello.repository)。
  2. リポジトリインタフェースの作成: 作成したパッケージに、新しいインタフェースを作成します (例: MessageRepository.java)。
  3. リポジトリインタフェースの記述: 作成したインタフェースに、以下のコードを追加します。

    “`java
    package com.example.hello.repository;

    import com.example.hello.entity.Message;
    import org.springframework.data.jpa.repository.JpaRepository;

    public interface MessageRepository extends JpaRepository {
    }
    “`

    コードの説明:

    • JpaRepository<Message, Long>: Spring Data JPAが提供するリポジトリインタフェースを継承します。これにより、基本的なCRUD操作が自動的に利用できるようになります。

4.3 コントローラの修正

  1. コントローラクラスの修正: HelloController.java を以下のように修正します。

    “`java
    package com.example.hello.controller;

    import com.example.hello.entity.Message;
    import com.example.hello.repository.MessageRepository;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestParam;

    import java.util.List;

    @Controller
    public class HelloController {

    @Autowired
    private MessageRepository messageRepository;
    
    @GetMapping("/hello")
    public String hello(@RequestParam(name="name", required=false, defaultValue="World") String name, Model model) {
        model.addAttribute("name", name);
        return "hello";
    }
    
    @GetMapping("/messages")
    public String messages(Model model) {
        List<Message> messages = messageRepository.findAll();
        model.addAttribute("messages", messages);
        return "messages";
    }
    
    @PostMapping("/messages")
    public String addMessage(@RequestParam("text") String text) {
        Message message = new Message();
        message.setText(text);
        messageRepository.save(message);
        return "redirect:/messages";
    }
    

    }
    “`

    コードの説明:

    • @Autowired private MessageRepository messageRepository: MessageRepository をDI(Dependency Injection)します。Springが自動的に MessageRepository のインスタンスを注入します。
    • @GetMapping("/messages"): /messages というURLへのGETリクエストをこのメソッドで処理します。データベースからすべてのメッセージを取得し、ビューに渡します。
    • @PostMapping("/messages"): /messages というURLへのPOSTリクエストをこのメソッドで処理します。新しいメッセージをデータベースに保存し、/messages にリダイレクトします。

4.4 ビューの作成

  1. ビューファイルの作成: src/main/resources/templates フォルダに、新しいHTMLファイルを作成します (例: messages.html)。
  2. ビューファイルの記述: 作成したファイルに、以下のコードを追加します。

    html
    <!DOCTYPE HTML>
    <html xmlns:th="http://www.thymeleaf.org">
    <head>
    <title>Messages</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    <h1>Messages</h1>
    <ul>
    <li th:each="message : ${messages}" th:text="${message.text}" />
    </ul>
    <form action="/messages" method="post">
    <input type="text" name="text" />
    <button type="submit">Add Message</button>
    </form>
    </body>
    </html>

    コードの説明:

    • th:each="message : ${messages}": messages リストの各要素を順番に message 変数に格納します。
    • th:text="${message.text}": message オブジェクトの text フィールドの値を表示します。
    • <form action="/messages" method="post">: 新しいメッセージを送信するためのフォームを作成します。

4.5 アプリケーションの再実行

  1. アプリケーションの再実行: STSでアプリケーションを再実行します。
  2. アプリケーションの確認: ブラウザで http://localhost:8080/messages にアクセスします。メッセージが表示され、フォームから新しいメッセージを追加できるはずです。

5. Spring Boot DevTools の活用

Spring Boot DevTools は、開発時に便利な機能を提供します。

  • 自動再起動: ソースコードを変更すると、自動的にアプリケーションが再起動されます。
  • ライブリロード: Thymeleafテンプレートなどの静的リソースを変更すると、ブラウザが自動的にリロードされます。
  • データベースの自動設定: H2 Database などの組み込みデータベースを使用する場合、自動的にデータベースが設定されます。

これらの機能を活用することで、開発効率を大幅に向上させることができます。

6. まとめ

この記事では、STSを使用してSpring Bootの開発環境を構築し、簡単なサンプルアプリケーションを作成する方法を解説しました。

  • STSのインストール
  • Spring Bootプロジェクトの作成
  • コントローラとビューの作成
  • データベース連携
  • Spring Boot DevToolsの活用

これらのステップに従うことで、Spring Bootアプリケーション開発の基礎を習得することができます。さらに、Spring Bootのドキュメントやサンプルコードを参照して、より高度な機能や技術を学ぶことをお勧めします。Spring Bootは非常に強力で柔軟なフレームワークであり、Webアプリケーション開発を効率化するための多くの機能を提供しています。

さらなる学習:

Spring Bootは、Webアプリケーション開発を効率化するための強力なツールです。ぜひ、Spring BootとSTSを活用して、素晴らしいアプリケーションを作成してください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール