Spring入門
―より良いWebアプリケーションの設計と実装
―より良い
2005年4月16日紙版発売
長谷川裕一,伊藤清人,岩永寿来,大野渉(株式会社豆蔵) 著
B5変形判/336ページ
定価3,278円(本体2,980円+税10%)
ISBN 4-7741-2341-2
ただいま弊社在庫はございません。
書籍の概要
この本の概要
Javaを使ったWebアプリケーションの開発は転換期に来ています。より軽量で構造がシンプルな設計をしようという機運が高まっているからです。
1つのソリューションは,SpringFrameworkに代表される軽量コンテナの利用です。本書はさまざまな面からこの新技術を紹介します。
こんな方におすすめ
- EJBの使用に疑問と限界を感じているJavaプログラマー
著者の一言
Webアプリケーションの仕事に携わる中で,僕はJ2EEの複雑化や肥大化に対応できるWebアプリケーション開発の「切り札」となるものを探していた。そこで,見つけたのがSpring(Spring Framework)というJava/Webアプリケーション用のフレームワークだ!
目次
第1章 Webアプリケーション概論
- 1.1 SpringとWebアプリケーション
- 1.2 Webアプリケーションとは何か?
- 1.2.1 JSP,Servletの登場
- 1.2.2 EJBの登場と衰退
- 1.2.3 軽量コンテナの登場
- 1.2.3.1 DIコンテナ
- 1.2.3.2 Aspect Injection(アスペクトの注入)
- 1.2.3.3 EJBの後継として
- 1.3 アプリケーションアーキテクチャ
- 1.3.1 アプリケーションアーキテクチャの必要性
- 1.3.1.2 システム開発の目標
- 1.3.1.3 開発効率とアプリケーションアーキテクチャの必要性
- 1.3.1.4 システムのライフサイクルとアプリケーションアーキテクチャの必要性
- 1.3.2 レイヤ
- 1.3.3 凹型レイヤ
- 1.4 プレゼンテーション層の役割
- 1.4.1 MVC2とは何か?
- 1.4.2 MVCフレームワークの種類
- 1.4.3 画面の設計指針
- 1.4.4 JSPの配置
- 1.4.5 アプリケーションコントローラの設計指針
- 1.4.5.1 入力データの変換
- 1.4.5.2 入力データの検証
- 1.4.5.3 サービスロジックの分離
- 1.5 ビジネス層の役割
- 1.5.1 ドメイン,エンティティ,ValueObject
- 1.5.2 ビジネス層のパターン
- 1.5.2.1 サービス優先
- 1.5.2.2 ドメイン優先
- 1.5.3 トランザクション管理(ACID属性はご存じですか)
- 1.5.3.1 宣言的なトランザクション
- 1.5.3.2 明示的なトランザクション
- 1.6 データアクセス層の役割
- 1.6.1 O/Rマッピング
- 1.6.2 DBアクセスフレームワークの種類
- 1.6.3 データアクセス層の設計指針
- 1.6.3.1 ビジネス層とデータアクセス層の分離
- 1.7 Spring概要
- 1.7.1 Spring Frameworkとは何か?
- 1.7.2 Springと凹型レイヤ
- 1.7.3 すべての層で利用可能なDIコンテナとAOP
- 1.7.3.1 SpringのDIコンテナ
- 1.7.3.2 SpringのAOP(アスペクト指向プログラミング)
- 1.7.4 プレゼンテーション層
- 1.7.4.1 SpringMVCフレームワーク
- 1.7.4.2 SpringWebインテグレーション機能
- 1.7.5 ビジネス層
- 1.7.5.1 DIコンテナとサービス,ドメイン
- 1.7.5.2 AOPとトランザクション管理
- 1.7.6 データアクセス層
- 1.7.6.1 SpringのJDBC抽象化フレームワーク
- 1.7.6.2 Spring ORMインテグレーション機能
- 1.7.7 Springとユニットテスト
第2章 Springの導入
- 2.1 開発環境
- 2.2 Tomcat Plugin
- 2.2.1 インストール
- 2.2.2 初期設定
- 2.2.3 使用方法
- 2.3 Spring IDE
- 2.3.1 インストール
- 2.3.2 使用方法
- 2.4 Springの導入
第3章 DIコンテナ
- 3.1 Beanファクトリ
- 3.1.1 ライフサイクル管理
- 3.1.2 Bean定義ファイル
- 3.1.2.1 beanタグ
- 3.1.2.2 依存関係の設定例
- 3.1.2.3 Bean定義ファイルの分割
- 3.1.2.4 プロパティファイルの利用
- 3.1.3 リフレクションの問題
- 3.1.4 シングルトン(Singleton)
- 3.2 Applicationコンテキスト
- 3.2.1 Bean定義ファイルの読込み
- 3.2.2 メッセージソース
- 3.2.3 イベント処理
- 3.3 Springのロギング
- 3.4 Beanファクトリを使ってみよう
- 3.4.1 オブジェクトの生成
- 3.5 Beanファクトリオブジェクトの関連の設定
- 3.6 Beanファクトリインタフェースベースの設計をしよう
第4章 アスペクト指向プログラミング――AOP(Aspect Oriented Programming)
- 4.1 Spring AOPフレームワーク
- 4.1.1 DIコンテナが解決するものは何か?
- 4.1.2 アスペクト指向プログラミングの位置付け
- 4.1.3 アスペクト指向プログラミングとは何か?
- 4.1.4 AOPの用語
- 4.2 AOPフレームワークの今
- 4.2.1 AspectJとは何か?
- 4.2.2 バイトコードレベルでアスペクトを織り込むタイプ
- 4.2.2.1 AspectWerkz
- 4.2.2.2 JAC(Java Aspect Components)
- 4.2.2.3 JBossAOP
- 4.2.3 Proxyを利用してアスペクトを織り込むタイプ
- 4.3 SpringAOP
- 4.3.1 4つのAdvice
- 4.3.1.1 Around Advice
- 4.3.1.2 Before Advice
- 4.3.1.3 Throw Advice
- 4.3.1.4 After Returning Advice
- 4.3.2 Introduction
- 4.3.2.1 Adviceの一覧
- 4.3.3 AOPを適用する範囲を指定する Pointcut
- 4.3.4 Advisor
- 4.3.5 AOP Proxy
- 4.3.6 DIコンテナを利用したSpringAOP
- 4.3.7 Auto Proxy
- 4.3.8 カッコウの卵
第5章 DBアクセスとトランザクション
- 5.1 JDBCを使用したデータベースアクセスの問題点とJDBC抽象フレームワーク
- 5.2 コールバックパターン
- 5.3 JDBC抽象フレームワークにおけるコールバック実装
- 5.3.1 JdbcTemplate
- 5.3.2 JDBC抽象フレームワークのCallbackインタフェース
- 5.3.2.1 Statementに対して処理を行うもの
- 5.3.2.2 ResultSetに対して処理を行うもの
- 5.3.3 JdbcTemplateの使用方法
- 5.4 JDBC抽象フレームワークを使用したDAO設計
- 5.4.1 検索処理RDBMSオペレーションクラス
- 5.4.1.1 RDBMSオペレーションクラス 一覧結果を返す検索処理
- 5.4.1.2 1つの検索結果を返すRDBMSオペレーションクラス
- 5.4.2 更新処理RDBMSオペレーションクラス
- 5.4.3 DAOの作成
- 5.4.4 DIコンテナへの登録(DataSourceの設定)
- 5.5 汎用データベースアクセス例外
- 5.6 トランザクション制御
- 5.6.1 従来のトランザクション実装方式
- 5.6.2 Springで提供されるトランザクション制御の仕組み
- 5.6.3 PlatformTransactionManagerを使用したトランザクション管理
- 5.6.3.1 DataSourceTransactionManager
- 5.6.3.2 ThreadLocalとDataSourceUtils
- 5.6.3.3 JDBC抽象フレームワークとDataSourceUtils
- 5.6.4 AOPフレームワークを利用した宣言的トランザクション
- 5.6.4.1 TransactionProxyFactoryBean
- 5.6.4.2 トランザクション定義情報の設定
- 5.6.4.3 DIコンテナとTransactionProxyFactoryBean
- 5.6.4.4 AutoProxyの利用
- 5.6.5 JTAの利用
- 5.6.6 JOTMの導入
- 5.7 DAOのテスト
- 5.7.1 DbUnitとは
- 5.7.2 テストデータを用意する
- 5.7.3 テストクラスを用意する
- 5.8 DBアクセスとトランザクションのまとめ
第6章 MVCフレームワーク
- 6.1 SpringMVCのアーキテクチャ
- 6.1.1 SpringMVCのDIコンテナ
- 6.1.2 SpringMVCのコントローラの仕組み
- 6.2 SpringMVCの基本的な制御フロー
- 6.3 サンプルアプリケーション−参加受付サイト
- 6.4 コントローラサーブレット
- 6.4.1 DispatcherServlet
- 6.4.2 Bean定義ファイル
- 6.5 Mapping Definitions
- 6.5.1 HandlerMapping
- 6.5.1.1 BeanNameUrlHandlerMapping
- 6.5.1.2 SimpleUrlHandlerMapping
- 6.5.2 ViewResolver
- 6.5.2.1 InternalResourceViewResolver
- 6.5.2.2 ResourceBundleViewResolver
- 6.5.3 View
- 6.5.4 HandlerExceptionResolver
- 6.5.4.1 SimpleMappingExceptionResolver
- 6.6 Controller Definitions
- 6.6.1 Controller
- 6.6.2 AbstractController
- 6.6.3 MultiActionController
- 6.6.3.1 MethodNameResolver
- 6.6.4 SimpleFormController
- 6.6.4.1 メソッドprocessFormSubmission
- 6.6.4.2 メソッドformBackingObject
- 6.6.4.3 メソッドinitBinder
- 6.6.4.4 メソッドonSubmit
- 6.6.4.5 メソッドreferenceData
- 6.6.5 Validator
- 6.6.6 JSTLとSpring Tag Library
- 6.6.7 HandlerInterceptor
- 6.7 General Definitions
- 6.7.1 MessageSource
- 6.7.2 Filter
- 6.8 リクエストコントローラの単体テスト
- 6.9 SpringMVCのまとめ
第7章 Strutsとの連携
- 7.1 Strutsの概要
- 7.2 Strutsの課題
- 7.3 Struts+Spring連携の目的
- 7.4 Struts+Spring連携
- 7.4.1 サンプルアプリケーションの説明
- 7.4.2 DelegatingActionProxyの使用
- 7.4.3 ActionSupportの利用
- 7.4.4 DelegatingActionProxyとActionSupport
- 7.5 Struts+Spring連携のまとめ
第8章 Hibernateとの連携
- 8.1 Hibernateとは何か?
- 8.1.1 Hibernateの機能
- 8.1.1.1 HQL(Hibernate Query Language)
- 8.1.1.2 プライマリキーの生成
- 8.1.1.3 エンティティの関連
- 8.1.1.4 遅延ロード
- 8.1.1.5 キャッシュ
- 8.1.2 Hibernateの課題
- 8.1.3 Spring+Hibernate連携の目的
- 8.2 Spring+Hibernateの連携
- 8.2.1 連携前のコード
- 8.2.2 インテグレーション機能によるHibernate連携
- 8.2.2.1 定義ファイルの設定
- 8.2.3 ソースコードの修正
- 8.3 Spring+Hibernateのトランザクションに関わる落とし穴
- 8.3.1 重複したPKをどう扱うか
- 8.3.2 例外をキャッチする
第9章 iBATISとの連携
- 9.1 SpringとiBATISとのインテグレーションの必要性
- 9.2 iBATISとは何か?
- 9.3 iBATISの機能
- 9.3.1 名前付きバインド変数
- 9.3.2 SQLを動的に組み立てる
- 9.3.3 プライマリキーの生成
- 9.3.4 遅延ロード・キャッシュ
- 9.4 Spring+iBATISの連携
- 9.4.1 連携前のSpringJDBC抽象フレームワークでのコード
- 9.5 インテグレーション機能によるiBATIS連携
- 9.5.1 定義ファイルの設定
- 9.5.2 ソースコードの修正
この本に関連する書籍
-
Spring3入門―Javaフレームワーク・より良い設計とアーキテクチャ
もはや定番となったJava・オープンソースフレームワークのSpring Frameworkの実践的な入門書。これまでに,Spring入門,Spring2.0入門と発行してきたが,本書は機能の洗...
-
『間違いだらけのソフトウェアアーキテクチャ』―非機能要件の開発と評価
ソフトウェア工学における幻の著『Downward Bound:Guide to application Architecture』をベースにソフトウェア開発におけるアーキテクチャの真髄を解説。巷間を賑わ...
-
豆蔵セミナーライブオンテキスト(1) わかるオブジェクト指向
「豆蔵秘伝の重要セミナー初公開!」 ソフトウェアエンジニアリングの豆蔵の人気セミナーを書籍化! オブジェクト指向を講義形式でわかりやすく解説します。
-
最強フレームワーク Apache Struts 1.2 パーフェクトガイド
Webアプリケーションフレームワークのデファクトスタンダードとしての地位を確立した「Struts」。基本的な操作は理解したものの,開発中困ったり悩んだりした経験はあり...
-
Jakartaプロジェクト徹底攻略2 〜本格活用編〜
大好評の『Jakartaプロジェクト徹底攻略』に続く第2弾。デファクトスタンダードとなったStrutsやTomcatの最新活用術,Commons,POI,OROなど便利なライブラリの使い方,...
-
JBoss入門 オープンソースJava・EJB
「オープンソース・Java・EJBソフトウェア開発の旗手JBoss」JBossはオープンソースのEJB(Enterprise Java Beans)サーバで,オープンソースの総本山SouceForge。Netで...