この記事では、とても簡単なWebアプリケーションを作成します。それによって、まずはSpring Bootに慣れてもらいます。そして、Spring Bootを使えば、とても簡単にWebアプリケーションが作成できることが理解できると思います。
なお、以下の記事の環境構築が終わっている前提とします。
■ 処理の概要
定番のHello Worldと書かれた画面を表示するサンプルアプリケーションを作ります。以下のような画面を表示します。
[図-結果画面]
画面を表示するために、コントローラーと呼ばれるクラスを作ります。コントローラーとは、以下のことを行うクラスです。
- クライアントからサーバーへのリクエストを受け付ける。
- サーバーでの処理結果(レスポンス)をクライアントへ返す。
※ クライアントとは、サーバーに処理を依頼するPCやブラウザ、ユーザーのことです。
以下のようなコントローラーを作って、画面を表示します。
[処理概要]
- リクエスト(GETメソッド)
ブラウザにURLを入力します。これで、HTTPのGETメソッドでリクエストが送れます。
- HTML作成
サーバーは、テンプレートファイルのhello.htmlから、ブラウザに返すためのHTMLを生成します。
- レスポンス(hello.html)
生成されたHTMLがブラウザに返され、表示されます。
■ サンプルアプリケーションの作成
ここから、実際に手を動かしていきましょう。以下の手順で、サンプルアプリケーションを作成します。
- ファイルなどの作成
- HelloWorld画面作成
1. ファイルなどの作成
まずはアプリケーションを作るためにパッケージを作成します。パッケージ・エクスプローラーのsrc/main/javaをクリックし、その下にあるcom.example.demoを右クリック > 「新規」 > 「パッケージ」をクリックします。
名前に「com.example.demo.hello」と入力し、完了ボタンをクリックします。
[図-パッケージ作成]
次に、作成したパッケージにクラスを作成します。
作成したhelloパッケージを右クリック > 「新規」 > 「クラス」をクリックします。
[図-クラス作成]
名前に「HelloController」と入力し、完了ボタンをクリックします。
[図-クラス作成]
次に、HelloWorldを表示するためのHTMLファイルを作成します。
src/main/resourcesをクリックし、その下にあるtemplateディレクトリを右クリック > 「新規」 > 「HTMLファイル」をクリックします。
[図-ファイル作成-1]
ファイル名に「hello.html」と入力し、完了ボタンをクリックします。
[図-ファイル作成-2]
これで、プロジェクト内に以下のようにパッケージとファイルが作成されます。文字色が変わっている部分が、先ほどの手順で追加した箇所です。
SpringBootSample
┣ src/main/java
┃ ┗ com.example.demo
+┃ ┣ hello ← パッケージを新規作成
+┃ ┃ ┗ HelloController.java ← Javaクラスを新規作成
┃ ┗ SpringBootSampleApplication.java
┣ src/main/resources
┃ ┣ static
┃ ┣ templates
+┃ ┃ ┗ hello.html ← HTMLファイルを新規作成
┃ ┗ application.properties
┗ pom.xml
補足: SpringBootSampleApplication.java
Spring Bootのプロジェクトを作成すると、[プロジェクト名 + Application.java]というファイルが自動で作られます。本記事の場合、SpringBootSampleApplication.javaというファイルが作成されています。このファイルのソースコードにはmainメソッドがあり、その中でSpring Bootを実行しています。
[SpringBootSampleApplication.java] (一部抜粋)
@SpringBootApplication
public class SpringBootSampleApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootSampleApplication.class, args);
}
}
つまり、Spring Bootを実行する場合、このjavaファイルを実行します。
2. HelloWorld画面作成
では次に、HelloWorldと書かれた画面を作成します。先ほど作成したhello.htmlを以下のように編集してください。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> ❶
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
ポイント❶: Thymeleaf(タイムリーフ)使用の宣言
Thymeleafを使用するためには、htmlタグ内にxmlns:th="http://www.thymeleaf.org"と書きます。これで、Thymeleafを使うことを宣言しています。まだThymeleafの機能は使っていません。ですが、Spring Bootでは全てのHTMLにThymeleafの宣言を入れておく方がよいでしょう。
次にコントローラーを作成します。このコントローラーでは、/helloへのリクエストを受け付けます。そのリクエストの処理結果として、HTMLをクライアントに返します。先ほど作成したHelloController.javaを以下のように編集してください。
※ import文はEclipseが自動で補完してくれるため、基本的には入力する必要はありません。ただし、同じ名前のクラスなどをimportする場合は、サンプルコードのimport文と同じクラスなどをimportしてください。
package com.example.demo.hello;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller ❶
public class HelloController {
@GetMapping("/hello") ❷
public String getHello() {
// hello.htmlに画面遷移
return "hello";
}
}
ポイント❶: @Controller
コントローラーを作成するためには、@Controllerアノテーションをクラスに付けます。
ポイント❷: @GetMapping
コントローラーの中では、@GetMappingアノテーションを使うことができます。このアノテーションをメソッドに付けると、GETメソッドを使ったHTTPリクエストを受け付けることができます。@GetMappingの引数には、受け付けるリクエストのURLを設定します。サンプルコードの場合、/helloへのGETメソッドでのHTTPリクエストを受け付けるようになります。
メソッドの戻り値には、拡張子を除いたHTMLファイルのパスを指定します。パスとは、src/main/resources/templatesからの相対パスです。サンプルコードの場合、getHelloメソッドの戻り値をsrc/main/resources/templates/hello.htmlに設定している、という意味になります。
これで、/helloにリクエストを送ると、hello.htmlがブラウザに返されます。
■ 実行
Spring Bootを実行するためには、以下の操作をします。
プロジェクトを右クリック >「実行」>「Spring Bootアプリケーション」をクリックします。
[図-Spring Boot実行-1]
以下のようなメッセージがEclipseのコンソールに出力されます。これでSpring Bootが実行されました。
[図-Spring Boot実行-2]
Spring Bootを実行したら、ブラウザのURL入力欄に[http://localhost:8080/hello]と入力します。これで、先ほど作成したコントローラーの@GetMapping(“/hello”)が付いたメソッドにHTTPリクエストが送られます。
[実行結果]
HelloWorldと書かれた画面が表示されたら、画面作成の完了です。
■ Spring Bootの停止方法
Spring Bootを停止する場合、以下の2通りの方法があります。
投稿のやる気につながるため、記事の内容が少しでも良いと思ったら、いいねやフォローしてくださいね。
最後まで読んで頂き、ありがとうございます。
参考)下記の書籍