作って学ぶ Spring Boot入門
- 多田真敏 著
- 定価
- 2,970円(本体2,700円+税10%)
- 発売日
- 2026.6.16
- 判型
- B5変形
- 頁数
- 256ページ
- ISBN
- 978-4-297-15658-9 978-4-297-15659-6
サポート情報
概要
Spring BootはSpring Frameworkのフレームワークのひとつで、環境設定を簡略化し、Javaによる開発を効率化するフレームワークです。本書はJavaエンジニア1年目、仕事で使うためSpring Bootを学び始めたいという方を対象に、現場ですぐに使える知識を解説します。前提知識は以下のとおりです。
- 入門書レベルのJava基本文法を利用してプログラムが作成できる
- HTMLとCSSを利用してWebページを作成できる
- SELECT文・INSERT文・UPDATE文・DELETE文を利用してリレーショナルデータベースを操作できる
実装だけではなくテストの技術まで学習でき、短期間で現場で使える技術を取得できます。また、各章ごとにハンズオンを取り入れることで、実際に手を動かすことで知識を定着させます。
こんな方にオススメ
- Spring Bootの概要を短期間で把握したい人
目次
第1章 Spring Bootって何?
- 1.1 Spring Frameworkって何?
- 1.2 Spring Boot誕生の理由
- 1.3 Spring Bootの特徴
- 1.4 まとめ
第2章 本書のための開発環境を構築する
- 2.1 Spring Bootを利用した開発に必要なもの
- 2.2 Pleiades All in One Eclipseのインストール
- 2.2.1 インストーラーのダウンロード(Windows・macOS共通)
- 2.2.2 インストールの実行と起動(Windowsの場合)
- 2.2.3 インストールの実行と起動(macOSの場合)
- 2.3 初めてのSpring Boot Webアプリケーションを作成する
- 2.4 サンプルプロジェクトをインポートする
- 2.5 サンプルプロジェクトの構成
- 2.6 まとめ
第3章 Springでよく使うJava知識を理解する
- 3.1 Maven
- 3.2 JUnit
- 3.3 Mockito
- 3.4 テキストブロック
- 3.5 enum
- 3.6 レコードクラス
- 3.7 ラムダ式
- 3.7.1 無名クラス
- 3.7.2 ラムダ式
- 3.7.3 ラムダ式の省略
- 3.8 Stream API
- 3.9 Optional
- 3.10 まとめ
第4章 Springの根幹!DIコンテナを理解する
- 4.1 DIコンテナとBeanって何?
- 4.2 必要なライブラリ
- 4.3 Beanを定義する方法
- 4.4 コンポーネントスキャンによるBean定義
- 4.4.1 コンポーネントスキャンとは
- 4.4.2 Beanを定義する
- 4.4.3 コンポーネントスキャンの実行+Beanの取り出しと利用
- 4.5 メソッドによるBean定義
- 4.5.1 Java Configとは
- 4.5.2 Beanを定義する
- 4.5.3 DIコンテナの生成+Beanの取り出しと利用
- 4.6 コンポーネントスキャンでのBean定義とメソッドでのBean定義の使い分け
- 4.7 DIとは
- 4.8 @Autowiredの省略
- 4.9 まとめ
第5章 Spring JDBCでデータベースにアクセスしよう
- 5.1 Spring JDBCとは
- 5.2 本章で作成するアプリケーション
- 5.2.1 概要
- 5.2.2 作成物
- 5.3 必要な設定
- 5.3.1 ライブラリの追加
- 5.3.2 組み込みデータベースの追加
- 5.3.3 application.propertiesの設定
- 5.3.4 組み込みでないデータベースを使う場合
- 5.4 起動時に実行するSQLの作成
- 5.5 エンティティクラスの作成
- 5.6 JdbcClientによるリポジトリークラスの作成
- 5.6.1 作成するリポジトリークラスの概要
- 5.6.2 IDで検索する
- 5.6.3 名前で検索する
- 5.6.4 集計関数の結果を取得する
- 5.6.5 IDを指定してアイドル情報を更新する
- 5.6.6 IDを指定してアイドル情報を削除する
- 5.6.7 アイドル情報を追加する
- 5.7 main()メソッドの作成
- 5.8 データベースを利用したリポジトリークラスのテスト
- 5.8.1 テストクラスの作成
- 5.8.2 ID検索のテスト
- 5.8.3 追加のテスト
- 5.8.4 削除のテスト
- 5.8.5 そのほかのテスト
- 5.8.6 テストメソッド実行直前にSQLを実行する
- 5.9 まとめ
第6章 Springでトランザクションを管理しよう
- 6.1 本章で作成するアプリケーション
- 6.1.1 概要
- 6.1.2 作成物
- 6.2 必要な設定
- 6.3 サービスクラスの作成
- 6.4 @Transactionalによるトランザクション管理
- 6.5 モックを利用したサービスクラスのテスト
- 6.6 まとめ
第7章 Spring MVCとThymeleafでWebアプリケーションを開発しよう
- 7.1 Spring MVCとは
- 7.2 Thymeleafとは
- 7.3 組み込みサーバーとは
- 7.4 本章で作成するアプリケーション
- 7.4.1 概要
- 7.4.2 作成物
- 7.4.3 アプリケーションの構成
- 7.5 必要な設定
- 7.5.1 ライブラリの追加
- 7.5.2 application.propertiesの設定
- 7.6 コントローラークラス作成の基本
- 7.6.1 コントローラークラス
- 7.6.2 コントローラーメソッド
- 7.6.3 POSTとPRGパターン
- 7.6.4 コントローラーメソッドからThymeleafテンプレートに値を渡す
- 7.6.5 リクエストパラメーターを引数で受け取る
- 7.6.6 URLの一部を引数で受け取る
- 7.6.7 完成したコントローラークラス
- 7.7 スタイルシートの作成
- 7.8 ThymeleafでのHTML画面作成の基本
- 7.8.1 Thymeleafの特徴
- 7.8.2 名前空間の記述
- 7.8.3 コメント
- 7.8.4 変数式と繰り返し
- 7.8.5 選択変数式
- 7.8.6 式ユーティリティオブジェクト
- 7.8.7 リンクURL式
- 7.8.8 リンクURL式と選択変数式の組み合わせ
- 7.8.9 リクエストパラメーターの取得
- 7.8.10 完成したアイドル一覧画面
- 7.8.11 そのほかの機能
- 7.9 コントローラーメソッドの単体テスト
- 7.9.1 テストクラスの作成
- 7.9.2 アイドル一覧画面のテスト
- 7.9.3 キーワード検索機能のテスト
- 7.9.4 卒業のテスト
- 7.10 ブラウザからの結合テスト
- 7.11 まとめ
第8章 バリデーションと例外処理で異常に対処しよう
- 8.1 Hibernate Validatorとは
- 8.2 本章で作成するアプリケーション
- 8.2.1 概要
- 8.2.2 作成物
- 8.2.3 アプリケーションの構成
- 8.3 必要な設定
- 8.3.1 ライブラリの追加
- 8.3.2 application.propertiesの設定
- 8.4 フォームクラスの作成
- 8.5 フォームクラスへの制約アノテーションの指定
- 8.6 バリデーションエラー時のメッセージ記述
- 8.7 型変換時のエラーメッセージ記述
- 8.8 画面の作成
- 8.9 コントローラークラスの作成
- 8.10 コントローラーメソッド内での例外のスロー
- 8.11 例外ハンドラークラスの作成
- 8.12 エラー画面の作成
- 8.13 404エラー画面の作成
- 8.14 コントローラーメソッドの単体テスト
- 8.14.1 卒業のテスト
- 8.14.2 新規加入画面への遷移のテスト
- 8.14.3 新規加入実行のテスト
- 8.14.4 修正画面への遷移のテスト
- 8.14.5 修正実行のテスト
- 8.15 ブラウザからの結合テスト
- 8.16 まとめ
第9章 Web APIを作ろう(前編)
- 9.1 JSON・Web APIとは
- 9.2 Jacksonとは
- 9.3 Web APIに必要なHTTPの知識
- 9.3.1 リクエストメソッド
- 9.3.2 ステータスコード
- 9.3.3 ヘッダー
- 9.4 エラーレスポンスの標準
- 9.5 本章で作成するアプリケーション
- 9.5.1 概要
- 9.5.2 作成物
- 9.5.3 アプリケーションの構成
- 9.6 必要な設定
- 9.6.1 ライブラリの追加
- 9.6.2 application.propertiesの設定
- 9.7 RESTコントローラークラス
- 9.8 例外ハンドラークラス
- 9.9 単体テストクラス
- 9.10 結合テストクラス
- 9.11 ID検索
- 9.11.1 リクエスト仕様
- 9.11.2 正常時のレスポンス仕様
- 9.11.3 該当するIDが存在しない場合のレスポンス仕様
- 9.11.4 レスポンスクラスの作成
- 9.11.5 例外クラスの作成
- 9.11.6 RESTコントローラーメソッドの作成
- 9.11.7 例外ハンドラーメソッドの作成
- 9.11.8 単体テスト
- 9.11.9 結合テスト
- 9.11.10 単体テストと結合テストの違い
- 9.11.11 curlコマンドによるテスト
- 9.12 キーワード検索
- 9.12.1 リクエスト仕様
- 9.12.2 keywordパラメーターがない、または空文字の場合のレスポンス仕様
- 9.12.3 該当するアイドルが存在する場合のレスポンス仕様
- 9.12.4 該当するアイドルが存在しない場合のレスポンス仕様
- 9.12.5 RESTコントローラーメソッドの作成
- 9.12.6 単体テスト
- 9.12.7 結合テスト
- 9.12.8 curlコマンドによるテスト
- 9.13 まとめ
第10章 Web APIを作ろう(後編)
- 10.1 アイドルの加入
- 10.1.1 リクエスト仕様
- 10.1.2 正常時のレスポンス仕様
- 10.1.3 バリデーションエラー時のレスポンス仕様
- 10.1.4 リクエストクラスの作成
- 10.1.5 バリデーションエラーメッセージの作成
- 10.1.6 RESTコントローラーメソッドの作成
- 10.1.7 例外ハンドラーメソッドの作成
- 10.1.8 単体テスト
- 10.1.9 結合テスト
- 10.1.10 curlコマンドでのテスト
- 10.2 アイドル情報の修正
- 10.2.1 リクエスト仕様
- 10.2.2 正常時のレスポンス仕様
- 10.2.3 バリデーションエラー時のレスポンス仕様
- 10.2.4 指定したIDが存在しない場合のレスポンス仕様
- 10.2.5 RESTコントローラーメソッドの作成
- 10.2.6 単体テスト
- 10.2.7 結合テスト
- 10.2.8 curlコマンドでのテスト
- 10.3 アイドルの卒業
- 10.3.1 リクエスト仕様
- 10.3.2 正常時のレスポンス仕様
- 10.3.3 指定したIDが存在しない場合のレスポンス仕様
- 10.3.4 RESTコントローラーメソッドの作成
- 10.3.5 単体テスト
- 10.3.6 結合テスト
- 10.3.7 curlコマンドでのテスト
- 10.4 まとめ
第11章 Spring Securityで認証・認可を設定しよう
- 11.1 認証・認可とは
- 11.2 Spring Securityとは
- 11.3 CookieとHttpSession
- 11.4 本章で作成するアプリケーション
- 11.4.1 概要
- 11.4.2 作成物
- 11.4.3 アプリケーションの構成
- 11.5 必要な設定
- 11.5.1 ライブラリの追加
- 11.5.2 application.propertiesの設定
- 11.6 ユーザー情報テーブルの作成
- 11.7 セキュリティJava Configの作成
- 11.8 セキュリティJava Configの注意点
- 11.9 ユーザーを検索するリポジトリークラスの作成
- 11.10 UserDetailsとUserDetailsServiceの作成
- 11.11 ログイン画面の作成
- 11.12 ThymeleafとSpring Securityの連携
- 11.13 コントローラーメソッドでのユーザー情報の取得
- 11.14 CSRF対策
- 11.15 Web APIでのCSRF対策
- 11.16 コントローラークラスの単体テスト
- 11.17 ブラウザからの結合テスト
- 11.18 Web APIのセキュリティの簡単な紹介
- 11.19 まとめ
第12章 本書を読んだあとは何を勉強すればいい?
- 12.1 ゼロからアプリケーションを作ってみよう
- 12.2 Springの本でさらに知識を深めよう
- 12.3 HTTPを知っておこう
- 12.4 Webアプリケーションセキュリティを知っておこう
- 12.5 サーブレットを知っておこう
- 12.6 Springのソースコードを読んでみよう
- 12.7 公式ドキュメントを読もう
- 12.8 XのSpring公式アカウントをフォローしよう
- 12.9 コミュニティの勉強会に参加しよう
- 12.10 ブログや勉強会で学んだことを説明しよう
- 12.11 低レイヤーの勉強をしよう
プロフィール
多田真敏
SIerでJavaによるシステム開発に従事したあと、研修トレーナーとしてSpring、Java EE(現Jakarta EE)、Kubernetesなどの研修を担当。現在は金融事業会社でSpringとAWSを利用し、システムの内製化に取り組んでいる。
個人では日本Javaユーザーグループ(JJUG)、日本Springユーザ会(JSUG)のスタッフとして、勉強会の企画・運営・登壇、OSSのドキュメント和訳も行っている(Thymeleaf、Resilience4j)。
