目次
chapter1 Spring Bootの構成
1.1 Spring Bootの基礎
Spring Bootとは
スターター
ビルドツール
依存関係の管理
コンフィグレーションクラス
オートコンフィグレーション
メインアプリケーションクラス
設定ファイル
アプリケーションの起動
1.2 Spring BootによるWebアプリケーション開発
Developer tools
Restart vs Reload
1.3 サンプルプロジェクトの構成
マルチプロジェクト
アプリケーション・アーキテクチャ
サンプルプロジェクトのビルドスクリプト
Lombokを利用する
chapter2 Webアプリケーションにおける共通処理
2.1 バリデーション
メッセージの設定
バリデーションの種類
単項目チェック
相関項目チェック
2.2 オブジェクトマッピング
詰め替えコストの抑制
2.3 ログ出力
トレースするための共通処理
ログレベル
ログローテーション
2.4 ファイルダウンロード
PDFファイルのダウンロード
CSVファイルのダウンロード
Excelファイルのダウンロード
2.5 ファイルアップロード
ファイルサイズの設定
ファイルの取り扱い
ファイルのデータベースへの格納
2.6 メール送信
テンプレートエンジンの利用
chapter3 データアクセス
3.1 スターター
3.2 Domaの使い方
エンティティ
Daoインターフェース
SQLテンプレート
3.3 エンティティ共通処理
エンティティ基底クラス
エンティティリスナー
3.4 ページング処理
検索オプションによるページング処理
3.5 排他制御
楽観的排他制御
悲観的排他制御
3.6 論理削除
更新機能による実現
エンティティリスナーによる共通処理
論理削除レコードの除外
chapter4 セキュリティ
4.1 スターター
4.2 認証
認証の設定
認証情報の取得
ログイン機能
4.3 RememberMe
ログイン記録の永続化
4.4 認可
権限管理に必要なテーブルの作成
権限管理データをロード
権限とメソッドの紐付け
認可制御のインターセプター
4.5 CSRF対策
CSRF対策の拡張
4.6 二重送信防止
トークン管理
RequestDateValueProcessorの変更
二重送信防止トークンのライフサイクルを管理するインターセプター
二重送信防止トークンのチェック
chapter5 画面開発
5.1 Thymeleaf
Spring Bootでの thymeleafの利用
5.2 Formバインディング
Formバインディングの実装例
5.3 事前評価
事前評価の実装例
5.4 テンプレート共有
テンプレートの部品化
テンプレートの共通化
5.5 Thymeleafのその他の機能
エスケープなしのテキスト
日付操作拡張
5.6 静的コンテンツ管理
静的コンテンツの場所配置場所
キャッシュ制御
アクセス制御
クライアントライブラリの構成管理
chapter6 API開発
6.1 SpringでのAPI開発
API仕様
リソース実装
コントローラー実装
エラーハンドリング実装
6.2 SpringでのAPI連携
RestTemplate
ユーザー一覧取得APIへの連携
ユーザー作成APIへの連携
6.3 API開発効率の最大化
Swaggerとは
Springでの利用(Spring Fox)
Spring RESR Docs
chapter7 チーム開発
7.1 インフラの構成管理
Docker
Maven/Gradleでの利用
7.2 データベースの構成管理
Flywayの利用
7.3 メンテナブルなテストコード
Spock
7.4 ドキュメント生成ツールの活用
Sphinx
7.5 ソースジェネレータ
ソースジェネレータプラグインの導入
chapter8 運用
8.1 環境ごとの設定管理
Spring Profiles
環境ごとの設定管理
8.2 アプリケーションサーバー設定
実行可能Jar
アプリケーションサーバーの設定およびリリース
8.3 アプリケーションの状態確認
Spring Boot Actuator
主要なエンドポイント
ヘルスチェックのカスタマイズ
カスタムアプリケーション情報を追加する
Spring Boot Actuatorのセキュリティ制御
8.4 アプリケーション監視
Prometheus
Prometheusの導入
Prometheusのサービスディスカバリー
Springアプリケーションとの連携
メトリクスの可視化
アラート通知
8.5 リクエスト追跡
nginxトレース
nginxとのトレースIDの統合
8.6 レイテンシ分析
Spring Cloud Sleuth
リクエスト追跡データの見える化(Zipkin)
8.7 無停止デプロイ
ローリングデプロイ
ローリングデプロイ作業フロー
ローリングデプロイ作業手順
(補足)ローリングデプロイ(URLベースのヘルスチェック)
8.8 コンテナオーケストレーションツールへのデプロイ
コンテナイメージの作成
Kubernetes
chapter9 (Spring Bootアプリケーションが想定している)システム構成
9.1 システムアーキテクチャ考察
システムが必要とする要件
システム要件の検討
9.2 システムアーキテクチャ案
構成要素一覧
可用性
拡張性
コスト
9.3 構築チュートリアル
Infrastracture as Code(IaC)
Terraform
chapter10 Spring 5/Spring voot2の新機能
10.1 WebFlux
アノテーションを使った開発
関数型を使った開発
関数型を用いたプログラムの例
chapter11 ローカル開発環境の構築について
11.1 Gitのインストール
11.2 サンプルプロジェクトのダウンロード
サンプルプロジェクトのブランチ設定
11.3 Dockerのインストール
11.4 JDKのインストール
11.5 IDEのインストール
IntelliJの設定
IDEでサンプルプロジェクトを開く
アプリケーションを起動する
chapter12 サンプルアプリについて
12.1 管理アプリケーションが提供する機能
12.2 管理アプリケーションの利用方法
ログイン
システム担当者のパスワード変更