Spring Boot 3 プログラミング入門
スプリングブートスリープログラミングニュウモン
- 著者:
- 掌田津耶乃(ショウダツヤノ)
- 出版社:
- 秀和システム
- 出版日:
- 2023年02月28日
- ISBN:
- 9784798069166
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
「Spring Boot 2 プログラミング入門」の改訂版です。主な更新、解説内容は、JDK17、Spring 6 に対応、テンプレートエンジンの利用についての解説、リアクティブ Web アプリケーションの開発 (Spring WebFlux) の解説、JAX-RS ベースで REST API を作成し、React アプリを作成する方法、などです。また Spring Boot 3 では、Spring Boot 2 で非推奨だった機能がすべて削除されているため、非推奨のコードはすべて書き換えています。
技書の森解説
Java の Web アプリケーション開発フレームワーク Spring Boot 3 を、開発環境の準備からテンプレートエンジン、データベースアクセス、リアクティブな Web アプリケーション、DI コンテナ、認証まで、ハンズオン形式で順に解説する入門書です。『Spring Boot 3 プログラミング入門』は掌田 津耶乃の単著で、秀和システムから 2023 年 2 月に刊行されました (版元の書店発売日は 2023 年 2 月 28 日。NDL の書誌では 2023 年 3 月)。版元は本書を、初心者向けに Spring Boot 3 でアプリケーション開発をするのに必要な最低限の知識をまとめた入門書と案内しています。書誌の紹介文によると、同じ著者の『Spring Boot 2 プログラミング入門』の改訂版で、JDK 17 と Spring 6 に対応し、Spring Boot 2 で非推奨だったコードはすべて書き換えられています。
全 7 章の構成、開発環境の準備から認証まで
Chapter1「Spring Boot 開発の準備」は、Spring Boot CLI と Spring Initializer、Eclipse と Spring Tool Suite、Visual Studio Code と Spring Boot Extension Pack による開発の始め方を取り上げます。Chapter2「プロジェクトの基本を覚える」ではプロジェクトの構成と Gradle、Maven のビルドファイル、RestController と Controller を、Chapter3「テンプレートエンジンの活用」では Thymeleaf、Mustache、Groovy templates の 3 つのテンプレートエンジンを扱います。Chapter4「モデルとデータベース」は JPA によるデータベースの利用と CRUD の作成、バリデーションで、Chapter5「データベースアクセスを更に掘り下げる」は EntityManager、JPQL、Criteria API、エンティティの連携です。Chapter6「リアクティブ Web アプリケーションの開発」で Spring WebFlux を、Chapter7「覚えておきたい Spring の機能」で Bean と DI コンテナ、Spring Security による認証を扱います。
DI コンテナと JPA、Spring Boot の土台にある仕組み
Spring Boot を使いこなす鍵は、クラスどうしの結び付きを部品の側で決めず、組み立てをフレームワークに任せる設計にあります。必要な部品を外から渡す 依存性注入 の考え方により、Spring では Bean として登録されたオブジェクトを DI コンテナが生成し、必要な場所へ割り当てます。本書は Bean と DI コンテナの説明を Chapter7 に置いており、それまでの章でアノテーションを付けたクラスが動く様子を先に体験してから、仕組みを振り返る並びと読めます。データベースの側では、Java のオブジェクトとテーブルの行を対応付ける ORM の仕様が JPA です。Chapter4 で CRUD とバリデーションを組んだあと、Chapter5 で EntityManager、JPQL、Criteria API による、より踏み込んだアクセス方法へ進みます。
WebFlux と React、リアクティブな Web アプリ開発
Chapter6 は Spring WebFlux によるリアクティブな Web アプリケーションの章です。従来の Spring MVC が 1 つのリクエストに 1 つのスレッドを割り当てて処理の完了を待つのに対し、WebFlux は入出力の待ち時間にスレッドを手放す非同期の処理モデルを採り、データの流れを宣言的に組み立てる リアクティブプログラミング の書き方を使います。本書はこの章でファイルアクセスとネットワークアクセス (WebClient による JSON データの取得を含む)、コントローラーと関数型ルーティングを扱い、6-4「クライアントからの API アクセス」では React のプロジェクトを作って API を呼び出すところまで進みます。書誌の紹介文は改訂での主な更新として、JAX-RS ベースで REST API を作成し React アプリを作成する方法も挙げています。
Spring Boot 3 から始める初心者に向く理由と注意点
Spring 公式ブログによると、Spring Boot 3.0 は 2022 年 11 月 24 日に一般提供が始まった 2.0 以来のメジャー改訂で、Java 17 を最低要件とし、Jakarta EE 9 を基準に Jakarta EE 10 をサポートします。旧版向けの解説と混ぜずに、非推奨のコードを書き換えた改訂版で 3 系の書き方に揃えて学べることは、これから始める人にとっての利点です。
一方で、版元の紹介文が述べるとおり、本書がまとめているのは最低限の知識です。目次にはテストの書き方を独立して扱う章や、本番環境へのデプロイを扱う章が無いため、実務で設計や運用まで担う人は公式のリファレンスドキュメントや別の書籍を組み合わせる必要があります。また Java の文法そのものは目次に無いので、クラスやアノテーションの読み書きに慣れてから始めると進めやすくなります。
Java の基本を学び終えて Spring Boot を始める人や、Spring Boot 2 で覚えた書き方を 3 系へ移したい人にとって、開発環境の準備からデータベース、WebFlux、Spring Security による認証までを 1 冊で通して手を動かせる本書は、最初の 1 冊として投じた時間を回収しやすい入門書です。
言及した記事 (16 件)
Visual Studio Code でSpring Bootに入門する
♡ 92springframework, SpringBoot, VSCode, java17Spring Boot / Thymeleafの基礎を学ぶ【初心者向け】
♡ 57spring, Docker, 初心者向け, Thymeleaf, SpringBootSpring 4.3 GAがリリースされた!!
♡ 23Java, spring, SpringBoot6年前駆け出したゲームセンターの店長がエンジニアリングマネージャーになるまで。
♡ 12ポエム, 転職, キャリア💡初心者エンジニアが実際に使える資料50選!!
♡ 9Git, GitHub, 初心者, Docker, VSCode何も知識がない状態でWindows11にKotlinの開発環境構築しHelloWorldした
♡ 7Windows, Kotlin, IntelliJ, HelloWorldSpringBootでSpring WebFluxを試してみた
♡ 4Java, 初心者, リアクティブ, SpringBoot, WebFluxSpring Bootでバリデーションを試してみた
♡ 4Java, 初心者, Validation, SpringBootMustacheテンプレートを使用したソース自動生成
♡ 3Java, mustache, テンプレートエンジン, 自動生成【初心者向け】Web基礎学習にJavaを選ぶべき5つの理由【最短ロードマップ4ステップ】
♡ 2Java, チーム開発, 初心者向け, SpringBoot, 学習記録
この本に興味がある方におすすめ
関連する本
掌田津耶乃 の他の書籍
関連記事
体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版は初版と何が違うか - 買い直し判断ガイド
通称「徳丸本」こと体系的に学ぶ 安全な Web アプリケーションの作り方 第 2 版 (2018 年) と初版 (2011 年) の違いを出版社公表の改訂内容から整理。章の削除 / 新設 / 追加点の一覧と、初版所有者が買い直すべきかの判断基準を解説します。
ゲームが好きならプログラミングの本も読める
ゲームの攻略本を読んだことがあるなら、プログラミングの本も読めます。攻略本とプログラミング本の共通点から、読書のハードルを下げます。
技術書がエンジニアのキャリアを変える - 読書習慣と年収の関係
技術書の読書習慣がエンジニアのキャリアアップに影響する 3 つの経路と、ジュニア / ミドル / シニア各段階に応じた読書戦略を具体的に解説します。
関連用語
Laravel
PHP 製の人気 Web フレームワーク。優雅な記述と豊富な機能で開発を効率化する
リアクティブプログラミング
データの変化を自動的に伝播させ、非同期データストリームを宣言的に処理するパラダイム
AWS SAM
AWS のサーバーレスアプリケーションを定義 / デプロイするためのフレームワーク
Unity
2D / 3D に対応するゲームエンジン。ゲームから VR / シミュレーションまで幅広く使われる
CloudFormation
AWS のインフラをテンプレート (YAML/JSON) で宣言的に定義および管理する IaC サービス
カナリアリリース
新バージョンを少数のユーザーに先行公開し、問題がないことを確認してから全体に展開するデプロイ手法