1.Spring Bootとは?
Spring Bootとは、Spring Framework上に構築された「アプリケーション開発用拡張フレームワーク」である。
ここで、Spring FrameworkとはJava EE(Jakarata EE)ベースのアプリケーションをより軽くて柔軟に構築するためのライブラリー群であり、XML設定や繊細なBean定義が複雑になりがちな問題があり、「より簡単に起動・開発・実行したい」という考えが存在してきた。
これらの考えにより、アプリケーションをより速やかに実行できるフレームワークとして構築され、主にバックエンドに特化した統合版の開発・実行・管理プロセスを提供し、おかげで従来のスプリングの構築の手間が減った。
2.主な特徴
-
自動構成
複雑なXML設定やJava設定を開発者自ら作成しなくてもいいように、自動記入ができる。
例)Spring-boot-starter-web
を適用すると、TomcatやSpring MVCの設定が即座に反映される。 -
スターター依存
Spring-boot-starter-***
という構造に依存ライブラリを用意。必要な機能を***
に入れることで該当するライブラリを一括導入できる。
例)Spring-boot-starter-web
の場合、Web関連のライブラリが一括で導入される。 -
組み込みサーバー
Tomcat
、Jetty
、Undertow
などをJARに内包でき、外部サーバーのインストールなしで、内装サーバーの稼働ができる。 -
勧告メッセージ
Eclipseのエラー・勧告メッセージがさらに追加される。
3.バックエンドに特化した
バックエンドとは、「ユーザー」には見えない領域の処理のことを言い、DBの読み書き・ビジネスロジックの実行、認証・認可、外部サービスとの連携などが該当する。Spring Bootがバックエンドに特化したとのことは以下のような要因のことによる。
-
軽量なREST APIの構築が可能
@RestController
、@GetMapping
のようなアノテーションを利用して、簡単にREST APIの構築が実現できる。
JSONレスポンスが標準サポートされているので、API開発にも最適。 -
データアクセス機能の充実(JPA・JDBC連携)
spring-boot-starter-data-jpa
により、Hibernate
ベースのJPAを即時に利用可能。
CrudRepository
、JpaRepository
を継承するだけで、基本的なDB操作が完結できる。 -
認証・認可などのセキュリティ対策の標準化
spring-boot-starter-security
により、ログイン認証やアクセス制限の構築が便利。
その他にもほかの認証にも向いている。 -
ビジネスロジックの分離と統合が簡単な構造
MVC(Controller, Service, Repository) 構造をベースに、役割ごとに分離して実装することが可能。
依存性を注入してコードの再利用・テストが容易。 -
外部サービス・マイクロサービスとの統合が簡単
WebClient などによる外部API連携が容易。
Spring Cloud によるマイクロサービスアーキテクチャの対応ができ、企業レベルのバックエンド構成にも柔軟に対応。
4.まとめ
Spring Bootは拡張フレームワークの一種で、自動完成・ライブラリー群の管理、追加の修正勧告などの機能があり、バックエンド開発に特化したフレームワークである。