はじめに

Spring Frameworkを使いやすくしてくれるSpring Bootを使って、

指定したパスでリクエストを送ると、レスポンスが返ってくるだけの簡単に動くものを作成していきます。

環境

macOS Big Sur バージョン11.4

作成手順

Spring Initializerを使ったプロジェクト作成

Spring Initializerとは、ブラウザ上で言語など必要事項をGUIで指定することで、

アプリケーションのひな形を作成してくれるものです。

https://start.spring.io/

 

今回は、下記の設定を行い、ひな形を作成します。

設定後、GENERATEボタンをクリックすると、zipファイルがダウンロードできます。

・Project: Gradle

・Language: Java

・Spring Boot: 2.5.6

Dependencies: Spring Web

IntelliJでプロジェクトを開く

ダウンロードしたzipファイルを適当な場所に置き、解凍します。

IntelliJを起動し、メインメニューから File > New > Project from Existing Sources と進み、

先ほど解凍したフォルダを選択します。

そうすると、下記のようなウィンドウが表示されるので、Import project from external model にチェックをいれ、

Gradleを選択してください。

このファイルを信用してよいかという内容の表示がされる場合は、

十分確認した上で信用する選択をして、進めてください。

 

そうすると、エディタ画面が開き、Gradleによる処理が行われ、

完了すると、下記のようにBUILD SUCCESSSFULの文字が表示されます。

コード変更

プロジェクト構成は、下記のようになっています。

src/main/java/com/example/demo/配下に、DemoApplicationというクラスが1つある状態です。

このプルジェクトに手を加えていきます。

まずは、demo配下にcontroller/Controller.javaを作成します。作成すると、下記の画像の状態になります。

ファイルなどの作成は、右クリックからでもメインメニューのFileメニューからも行えます。

新規ファイルが作成できたら、編集していきます。

下記の状態になるように変更してください。

Controller.java

package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller {

    @GetMapping("/{message}")
    public String get(@PathVariable("message") String message) {
        return "message is " + message;
    }

}

実際に動かしてみる

とてもシンプルな状態ですが、これでリクエストに対し、レスポンスを返すシステムができましたので、

動作を確認していきます。

IntelliJでは、Gradle専用のウィンドウがあり、便利ですので使っていきます。

おそらくデフォルトであれば、IntelliJのウィンドウの右端のGradleと書かれている箇所をクリックすると、

コードが表示されている箇所の右側に、下記のようなウィンドウが開きます。

このウィンドウから、Gradleのりフレッシュやタスクの確認・実行が行えます。

今回は、プログラムを実行するために、demo > Tasks > application > bootRun をダブルクリックします。

そうすると、下部にRunウィンドウが表示され、

Spring Bootのプログラムが起動していることがわかります。

Startedという文言が含まれたログが出力されていることが確認できます。

この状態になったら、ブラウザを起動し、下記のパスにアクセスしてください。

helloの部分は、好きな文字で大丈夫です。

http://localhost:8080/hello

 

そうすると、下記のようにパスに加えた文字列を含めたController.javaで指定した文字列が表示されます。

本当にシンプルですが、

リクエストの値を受け取って、レスポンスを返すプログラムを作成し、動かすことができました。

また、停止する場合は、IntelliJの画面上部の赤い四角ボタンをクリックしてください。

設定について

仕組みなどについて、見ていきます。

アノテーション

アノテーションによって、色々な機能が有効化されています。

今回、使用したアノテーションについて解説します。

@SpringBootApplication

今回では、mainメソッドのあるDemoApplication.javaのクラス名の上に記載されています。

下記の3つのアノテーションを組み合わせたアノテーションです。

1. @EnableAutoConfiguration:

Spring Boot の自動構成メカニズムを有効にする

 

2. @ComponentScan:

アプリケーションが配置されているパッケージで @Component スキャンを有効にする

 

3. @SpringBootConfiguration:

コンテキストでの追加の Bean の登録、または追加の構成クラスのインポートを有効にします。統合テストでの構成検出を支援する Spring の標準 @Configuration の代替。