😺

Re:ゼロから始めるSpring Boot #1 Spring bootとは

2023/12/03に公開

Spring bootとは

Spring Bootは、"設定よりも規約(Convention OVer Configuration, COC)" の理念を提唱し、新しいSpringアプリケーションの初期セットアップと開発を簡素化するように設計された人気のあるマイクロサービスフレームワークです。Mavenコンフィギュレーション、組み込みサーブレットコンテナ、アプリケーションモニタリングやその他の機能により、エンタープライズ向けのアプリケーションを迅速に構築することができます。

特徴

  1. 設定よりも規約(Convention OVer Configuration, COC): COC原則に従い、基本的にデフォルト設定で利用できる。
  2. スタンドアローンSpringアプリ:Spring Bootはjarファイルのパッケージで実行できる。java -jarコマンドやmain()関数を利用してアプリを実行可能。
  3. 組み込みWebコンテナー: サーブレットコンテナとして、warファイルを作成する必要なく組み込みTomcat,Jettyなどを利用できる。
  4. Mavenなどのようなビルドを簡素化するスターターを組み込まれており、ビルドデプロイの自動化が容易になる。→ すぐに使える(OOTB : out-of-the-box)
  5. Springとサードパーティーライブラリを可能な限り自動的に構成する。
  6. メトリクス、ロバストネスチェック、外部化されたコンフィギュレーションなどのプロダクション指標を提供する。
  7. コード生成なし、XML設定なし。アノテーションの利用を推奨されている。

OOTB,out-of-the-box:Spring Bootアプリケーションは、プロジェクトを作成するために雛形を使って0から始める必要はありません。基本的な設定はすでに完了しています。ほとんどのサードパーティライブラリオブジェクトは統合されており、設定なしで使用できます。例えば、Spring BootプロジェクトでMyBatisを使用している場合、XXXMapperオブジェクトを直接使用し、SQLステートメントを実行するメソッドを呼び出すことができます。

COC : SpringBootではよく使われるクラス、パッケージの場所と構造、デフォルトの設定が定義されています。 コードを調整する必要はなく、プロジェクトは期待通りに実行できます。 例えば、「ルートパッケージのパスにあるスタートアップクラス、アノテーションの使用」、「controller、service、daoの配置」、「applicationのデフォルトコンフィグファイル」などは初期設定されています。

クイックスタート

こちらを見ながら早速Spring Bootを触ってみます。
ひな形を生成してダウンロードする。

EXPLOREボタンをクリックすると、中身を確認できる。

IDEAへのインポート

「File」→ 「Project Structure」→ 「import」

Mavenを選択して「Create」する。

中身を確認

├───.mvn  
│   └───wrapper //→ maven wrapperラッパースクリプトが存在する。maven wrapperはローカル開発環境に素早くMavenを用意するためのツールであり、ローカル環境にMavenをセットアップされていない場合は開発環境を構築してくれる。
└───src
    ├───main
    │   ├───java
    │   │   └───com
    │   │       └───restartsb
    │   │           └───demo //→ main()メソッドが存在する。アプリケーションの入り口。
    │   └───resources
    │       ├───static //→ Webアプリの静的ファイルを格納するディレクトリ。
    │       └───templates //→ 画像テンプレなどの置き場所
    └───test
        └───java
            └───com
                └───restartsb
                    └───demo //→ テストコードのディレクトリ

Hello World!

\src\main\java\com\restartsb\demo\controllerに以下のクラスを追加

package com.restartsb.demo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @RequestMapping("/hello")
    public String hello(){
        return "Hello World!";
    }
}

実行結果

コンソールの出力を確認。
組み込みTomcatがあるのでWebサーバを別途用意する必要はなく楽ですね。

Hello Worldを確認できました。
アノテーションの@RequestMapping("/hello")に対応して、/helloにアクセスするとコントロールパネルは実行される。

カスタムバナー

\src\main\resourcesに banner.txt を作成し、そのファイル内の文字がアプリ実行時のコンソールに表示される。

Discussion