1492 words
7 minutes
Spring boot でWebアプリケーションを作成してみよう! Hello編

Spring boot でWebアプリケーションを作成してみよう! Hello編#

こんにちは、YAMAです。
前回はTomcatでJavaアプリケーションをデプロイする方法についてお話しました。
今回は、Spring bootを使用して簡単なWebアプリケーションを作成し、Tomcatで動かしてみようと思います。
今回は、非常にシンプルな「Hello, Spring!」と表示するWebアプリケーションを作成します。

そもそもSpring bootとは?#

Spring bootは、JavaでWebアプリケーションを迅速に開発するためのフレームワークです。
Springフレームワークの上に構築されており、設定や依存関係の管理を簡素化することで、開発者が迅速にアプリケーションを構築できるようにします。
Spring bootは、組み込みのTomcatサーバーを提供しており、アプリケーションを簡単に実行できます。
また、Spring bootは多くのスターター依存関係を提供しており、これにより、必要なライブラリを簡単に追加できます。
ですが今回はWarファイルとしてデプロイするので、組み込みのTomcatは使用しません。

Spring bootでのWebアプリケーションの作成手順#

では、実際にSpring bootでWebアプリケーションを作成していきましょう!

1. 開発環境の準備#

今回はWindows11の環境で作成をしていきます。
前回のTomcatのインストール方法の記事を参考に、Java Development Kit (JDK)とApache Tomcatをインストールしておいてください。
また、Mavenもインストールしておいてください。

そして次に、Spring Initializrを使用して、Spring bootプロジェクトの雛形を作成します。

  1. Spring Initializrにアクセスします。
  2. 以下の設定を行います。
    • Project: Maven Project
    • Language: Java
    • Spring Boot: 最新の安定版を選択
    • Project Metadata:
      • Group: com.example
      • Artifact: hello-spring
      • Name: hello-spring
      • Package Name: com.example.hellospring
      • Packaging: War
      • Java: 21 これでGenerateボタンをクリックして、プロジェクトをダウンロードします。
  3. ダウンロードしたzipファイルを解凍し、任意のディレクトリに配置します。
TIP

ちなみに、Scoop を使用している場合は、以下のコマンドでSpring boot CLIをインストールできます。

scoop install springboot

Spring init --build=maven --packaging=war --java-version=21 hello-spring

これでもプロジェクトの雛形を作成できます。

2. プロジェクトの構成#

解凍したプロジェクトのディレクトリ構成は以下のようになっています。

  .gitattributes
  .gitignore
  HELP.md
  mvnw
  mvnw.cmd
  pom.xml
  
├─.mvn
  └─wrapper
          maven-wrapper.properties

└─src
    ├─main
  ├─java
  └─com
      └─example
          └─hello_spring
                  HelloSpringApplication.java
                  ServletInitializer.java

  └─resources
  application.properties
  
      ├─static
      └─templates
    └─test
        └─java
            └─com
                └─example
                    └─hello_spring
                            HelloSpringApplicationTests.java

こんな感じになっています。
実際にコーディングをする場所は、src/main/java/com/example/hello_springディレクトリ内です。
ここでjavaファイルを編集していきます。
htmlファイルを追加したい場合は、src/main/resources/templatesディレクトリ内に追加します。
依存関係などは、pom.xmlファイルで管理されています。

3. コントローラーの作成#

次に、Webアプリケーションのコントローラーを作成します。
src/main/java/com/example/hello_springディレクトリ内にControllerという名前の新しいJavaクラスフォルダを作成します。 その後、HelloWorldController.javaという名前の新しいJavaクラスファイルを作成し、以下のコードを追加します。

package com.example.hello_spring.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
public class HelloWorldController {

	@RequestMapping(value = "/", method = RequestMethod.GET)
	public String helloWorld(Model model) {
		model.addAttribute("message", "Hello Spring!!");
		return "index";
	}
}

このコードは、ルートURL(”/“)にアクセスしたときにmessage属性に”Hello Spring!!”を設定し、indexという名前のビューを返すコントローラーを定義しています。

4. ビューの作成#

次に、ビューを作成します。 src/main/resources/templatesディレクトリ内にindex.htmlという名前の新しいHTMLファイルを作成し、以下のコードを追加します。

<!DOCYPE html>
<html xmlns="https://www.w3.org/1999/xhtml" xmlns:th="https://www.thymeleaf.org">
	<head>
		<title>hello World</title>
		<meta charaset="utf-8" />
	</head>
	<body>
		<h1>Spring boot</h1>
		<p>
			<span th:text="${message}"></span>
		</p>
	</body>
</html>

このコードは、Thymeleafテンプレートエンジンを使用して、先ほどコントローラーで設定したmessage属性の値を表示します。
これで、基本的なWebアプリケーションの構成が完了しました。

5. pom.xmlの編集#

次に、pom.xmlファイルを編集して、必要な依存関係を追加します。 pom.xmlファイルを開き、以下の依存関係を追加します。

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>4.0.0</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>hello-spring</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
	<name>hello-spring</name>
	<description>Demo project for Spring Boot</description>
	<url/>
	<licenses>
		<license/>
	</licenses>
	<developers>
		<developer/>
	</developers>
	<scm>
		<connection/>
		<developerConnection/>
		<tag/>
		<url/>
	</scm>
	<properties>
		<java.version>21</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter</artifactId>
		</dependency>
    <!-- ここから追加-->
		<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-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のWeb機能とThymeleafテンプレートエンジンをプロジェクトに追加します。
これで、Webアプリケーションの作成に必要な準備が整いました。

6. アプリケーションのビルドと実行#

次に、Mavenを使用してアプリケーションをビルドします。
プロジェクトのルートディレクトリで以下のコマンドを実行します。
今回の場合ですと、プロジェクトのルートディレクトリはhello-springです。

mvn clean package

このコマンドは、プロジェクトをクリーンし、Warファイルを生成します。
ビルドが成功すると、targetディレクトリ内にhello-spring-0.0.1-SNAPSHOT.warという名前のWarファイルが生成されます。

7. Tomcatへのデプロイ#

次に、生成されたWarファイルをTomcatにデプロイします。

  1. Tomcatのwebappsディレクトリに移動します。
  2. 先ほど生成されたhello-spring-0.0.1-SNAPSHOT.warファイルをwebappsディレクトリにコピーします。
  3. Tomcatを起動します。
    これで、TomcatがWarファイルを自動的に展開し、アプリケーションをデプロイします。

8. アプリケーションの動作確認#

最後に、Webブラウザを開き、以下のURLにアクセスしてアプリケーションが正しく動作しているかを確認します。

http://localhost:8080/hello-spring-0.0.1-SNAPSHOT/

ブラウザに「Hello Spring!!」と表示されれば、アプリケーションが正常に動作していることが確認できます。

まとめ#

今回は、Spring bootを使用して簡単なWebアプリケーションを作成し、Tomcatで動かす方法について解説しました。
Spring bootは、JavaでのWebアプリケーション開発を迅速かつ効率的に行うための強力なフレームワークです。
ぜひ、Spring bootを活用して、さまざまなWebアプリケーションを開発してみてください。
次回は、MariaDBとSpring bootを連携させて、データベースを使用したWebアプリケーションの作成方法について解説しようと思います。
それでは、また次回お会いしましょう。

以上、YAMAでした。