Spring入門 Javaフレームワーク・より良い設計とアーキテクチャ 改訂新版
[改訂新版]Spring入門 ――Javaフレームワーク・より良い設計とアーキテクチャ
技術評論社
謝辞/著者の言葉
はじめのはじめに
本書の読み方
サンプルコードについて
各章の概略ナビケーション
第1章 SpringとWebアプリケーションの概要
1.1 Springの最新事情
1.1.1 Springの歴史
1.1.2 Springのプロジェクト
1.1.3 Springの国内動向
1.1.4 日本Springユーザ会
1.1.5 Springの教育
1.2 Webアプリケーション概論
1.2.1 SpringとWebアプリケーション
1.2.2 Webアプリケーションとは?
1.2.3 アプリケーションアーキテクチャ
1.2.4 プレゼンテーション層の役割
1.2.5 ビジネスロジック層の役割
1.2.6 データアクセス層の役割
1.2.7 Webアプリケーションの抱える問題
1.3 Spring概要
1.3.1 Springとは?
1.3.2 プレゼンテーション層
1.3.3 ビジネスロジック層
1.3.4 データアクセス層
1.3.5 バッチ
1.3.6 Spring Boo
1.3.7 Springを使う理由
第2章 SpringのCore
2.1 Spring のDI(Dependency Injection)
2.1.1 DIとは?
2.1.2 DIの使いどころ
2.1.3 アノテーションを使ったDI
2.1.4 Bean定義ファイルでDependency Injection
2.1.5 JavaConfigでDependency Injection
2.1.6 ApplicationContext
2.1.7 Springのロギング
2.1.8 SpringのUnitテスト
2.1.9 Bean定義ファイルのプロファイル機能
2.1.10 おまけ的なライフサイクルのハナシ
2.2 Spring のAOP(Aspect Oriented Programming)
2.2.1 AOPとは?
2.2.2 アノテーションを使ったAOP
2.2.3 JavaConfigを利用したAOP
2.2.4 Bean定義ファイルを利用したAOP
第3章 データアクセス層の設計と実装
3.1 データアクセス層とSpring
3.1.1 DAOパターンとは?
3.1.2 Javaのデータアクセス技術とSpring
3.1.3 汎用データアクセス例外
3.1.4 データソース
3.2 Spring JDBC
3.2.1 JDBCを直接使用した場合の問題
3.2.2 Spring JDBCの利用
3.2.3 Templateクラス
3.2.4 SELECT文(ドメインへ変換しない場合)
3.2.5 SELECT文(ドメインへ変換する場合)
3.2.6 INSERT/UPDATE/DELETE文
3.2.7 NamedParameterJdbcTemplate
3.2.8 バッチアップデート,プロシージャコール
3.3 Spring Data JPA
3.3.1 Spring Data JPAとは?
3.3.2 JPAの基礎
3.3.3 Spring Data JPAの利用
3.3.4 EntityManagerの設定
3.3.5 DAOのインタフェースの作成
3.3.6 命名規則に沿ったメソッドの定義
3.3.7 JPQLの指定
3.3.8 実装を自分で行いたい場合
3.4 まとめ
第4章 ビジネスロジック層の設計と実装
4.1 トランザクションとは
4.1.1 トランザクションの境界
4.1.2 トランザクション処理を実装する場所の問題
4.1.3 AOPを利用したトランザクション処理
4.2 トランザクションマネージャ
4.2.1 トランザクション定義情報
4.2.2 トランザクションマネージャの実装クラス
4.3 トランザクション機能の使い方
4.3.1 宣言的トランザクションの設定
4.3.2 明示的トランザクションの使い方
4.4 まとめ
第5章 プレゼンテーション層の設計と実装
5.1 Spring MVCの概要
5.1.1 Spring MVCとMVC2パターン
5.1.2 Spring MVCとアノテーション
5.1.3 Spring MVCとREST
5.1.4 Spring MVCの登場人物と動作概要
5.1.5 Spring MVCと関連する「Springの機能」
5.2 環境作成と動作確認
5.2.1 動作環境の構築
5.2.2 ビジネスロジックのBean定義(メッセージ管理設定とBean Validation設定)
5.2.3 Spring MVCの設定
5.2.4 DispatcherServletとCharacterEncodingFilterの設定
5.3 サンプルアプリケーションの概要
5.3.1 レイヤとパッケージ構造
5.3.2 ビジネスロジック層のクラス
5.4 画面を表示するController
5.4.1 @RequestMappingアノテーション
5.4.2 Controllerのメソッドの引数
5.4.3 Controllerのメソッドの戻り値
5.4.4 サンプルアプリケーションの作成①
5.5 入力値を受け取るController
5.5.1 入力値の受け取りと@ModelAttributeアノテーション
5.5.2 データバインディング/バリデーションと入力エラー処理
5.5.3 Modelオブジェクトとsessionスコープ
5.5.4 JSPとSpringタグライブラリの利用
5.5.5 サンプルアプリケーションの作成②
5.6 Spring MVC のその他の機能
5.6.1 flashスコープ
5.6.2 Spring MVCの例外処理
5.6.3 ControllerAdvice
5.6.4 ファイルアップロード
5.6.5 REST APIの実装 ―― XML,JSONの送受信
5.7 最後に
第6章 認証・認可
6.1 認証・認可とフレームワーク
6.2 認証・認可の基本
6.2.1 認証機能とは何か?
6.2.2 認可機能とは何か?
6.3 Spring Security の概要と導入
6.3.1 Spring Securityの概要
6.3.2 Spring Securityの導入
6.4 Spring Security の基本構造
6.4.1 SecurityContext,Authentication,GrantedAuthority
6.4.2 AuthenticationManagerとAccessDecisionManager
6.5 Webアプリケーションと認証
6.5.1 AuthenticationManagerの基本構造
6.5.2 メモリ上で認証情報を管理
6.5.3 データベースで認証情報を管理
6.5.4 (応用編)独自認証方式の適用
6.5.5 パスワードの暗号化
6.5.6 ログイン/ログアウト機能の適用
6.6 Web アプリケーションと認可(アクセス制御)
6.6.1 SpELを使ったアクセス制御定義
6.6.2 URL単位のアクセス制御
6.6.3 メソッド単位のアクセス制御
6.6.4 AccessDeniedException発生時のフローとエラーハンドリング
6.7 Spring Security の連携機能
6.7.1 JSPとの連携 ―― Spring Securityタグライブラリ
6.7.2 Servlet APIとの連携
6.7.3 Spring MVCとの連携
6.8セキュリティ攻撃対策
6.8.1 Cross Site Request Forgery(CSRF)対策機能
6.9 まとめ
第7章 ORM 連携 ― Hibernate,JPA,MyBatis
7.1 Hibernateとの連携
7.1.1 Hibernateとは?
7.1.2 Hibernateの利用イメージ
7.1.3 解説で使用するサンプル
7.1.4 SessionFactoryのBean定義
7.1.5 DAOの実装
7.1.6 汎用データアクセス例外の利用
7.2 JPA との連携
7.2.1 JPAの利用イメージ
7.2.2 解説で使用するサンプル
7.2.3 EntityManagerFactoryのBean定義
7.2.4 DAOの実装
7.2.5 汎用データアクセス例外の利用
7.3 MyBatisとの連携
7.3.1 MyBatisとは?
7.3.2 連携機能の提供元
7.3.3 MyBatisの利用イメージ
7.3.4 解説で使用するサンプル
7.3.5 SqlSessionFactoryのBean定義
7.3.6 DAOの実装
7.3.7 汎用データアクセス例外の利用
7.4 まとめ
第8章 キャッシュ抽象機能(Cache Abstraction)― Spring Cache
8.1 ProductDaoImplとProductServiceImpl,ProductSampleRunの改造と動作確認
8.1.1 キャッシュの適用と実行
8.2 応用編
第9章 バッチの設計と実装
9.1 バッチ
9.1.1 バッチの基本
9.1.2 ジョブの基本
9.1.3 ジョブネットの基本
9.2 Spring Batch
9.2.1 全体像
9.2.2 JobLauncher
9.2.3 Step,Job,ItemReader,ItemProcessor,ItemWriter
9.2.4 JobInstance
9.2.5 Execution
9.2.6 ExecutionContext
9.2.7 JobRepository
9.3 サンプルを使った解説
9.3.1 サンプルを見る前に
9.3.2 batch-entry(バッチの入門)
9.3.3 batch-basic(バッチの基本)
9.3.4 batch-advanced(バッチの応用)
9.3.5 Spring BatchのUnitテスト
第10章 Cloud Nativeの入り口
10.1 Spring Boot
10.1.1 Spring Bootで作って動かす
10.1.2 pom.xmlと依存関係
10.1.3 ソースコードの解析
10.1.4 Spring BootでWebアプリケーションを実行
10.2 Pivotal Web Services を利用して"Hello World!"
10.3 PWS にログインする
10.4 PWS にデプロイして実行する
10.5 おわりに
おわりに
索引
著者紹介