「Spring プレゼンテーション層」の編集履歴(バックアップ)一覧はこちら
「Spring プレゼンテーション層」(2005/09/12 (月) 12:39:52) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
プレゼンテーション層ではSpringのMVCフレームワークが利用可能<br>
<br>
<b style=
"color: rgb(255, 102, 0);">Springが提供するMVCフレームワークの構成</b><br>
<ul>
<li>
アプリケーションコントローラであるアプリケーションコントローラサーブレット</li>
<li>
コントローラサーブレットから呼ばれるコントローラクラス</li>
<li>その動作を制御する定義ファイル</li>
</ul>
これらを利用することによってUIとしてJSPだけでなくVelocityやXSLTなどを利用することが可能。<br>
<br>
アプリケーションコントローラの1つであるコントローラクラスはSpring MVCフレームワークが提供するクラスを継承して開発者が提供する。<br>
<br>
Spring MVCフレームワークを利用した場合、コントローラクラスはユーザからの入力データをWebコンテナに依存しないJavaBeansで取得でき、Webコンテナから分離された入力データの検証クラスを利用することができるのが利点。<br>
またコントローラクラスからサービスロジックを呼び出すには、DIコンテナからサービスロジックを取得して行わなければならない。これによりアプリケーションコントローラに不用意にサービスロジックを組み込む可能性が低くなる。<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">SpringWebインテグレーション機能<br>
<br></b><span style=
"color: rgb(255, 102, 0);">MVCフレームワークを必ず使う必要はない<br>
<br>
</span>Springを利用してWebアプリケーションを作るときに必要な機能<br>
Webインテグレーション機能を使えばUIの技術であるVelocityやMVCフレームワークであるStrutsを簡単にプラグインして利用することが可能<br>
<hr size="2" width="100%">
<b style="color: rgb(255, 102, 0);">ビジネス層</b><br>
Springがビジネス層に提供する機能はDIコンテナとAOP<br>
<br>
<b>DIコンテナとサービス、ドメイン</b><br>
サービスおよびドメインクラスはPOJOとして実装される(分散システムでないかぎりEJBを利用することはない)<br>
<br>
<u><b>DIコンテナを利用した場合に特徴的な設計</b></u><br>
<ul>
<li>
プレゼンテーション層のアプリケーションコントローラがサービスクラスを直接知らないようにすること</li>
</ul>
→アプリケーションコントローラは必ずDIコンテナを通してサービスクラスを取得してサービスロジックを利用するようにする。このときアプリケーションコントローラが取得するサービスクラスはI/Fとして取得する。つまりI/Fベースのやり取りを行うことが重要。<br>
<ul>
<li>
サービスクラスがデータアクセス層のデータアクセスフレームワークを直接知らないようにすること</li>
</ul>
→サービスクラスからデータアクセスクラスの利用も同様にDIコンテナからI/Fベースで行う。<br>
<br>
これにより隠そうの結びつきを緩くし、層の独立性を高め、変更の局所化が実現できる。<br>
<br>
<b>勘違いされやすいところ<br></b>DIコンテナはValueObjectのライフサイクル管理は行わない。<br>
ValueObjectの生成や削除は基本的にはデータアクセス層の役目。<br>
DIコンテナはサービスやデータベースアクセスといったロジック的に独立したコンポーネントを取得するためのもの!<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">AOPとトランザクション管理</b><br>
SpringではAOPの機能を使用してPOJOにトランザクションの機能を追加することでEJBと同等の宣言的なトランザクションを実現することができる。<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">データアクセス層<br></b><span style="color: rgb(0, 0, 0);">JDBCを直接扱うことは面倒&永続化ロジックを複雑にしてしまう<br>
<br>
SpringはJDBCを抽象化するためのフレームワークを提供している。<br>
SpringJDBC抽象化フレームワークはSQL文を利用するタイプのDBアクセスフレームワークでR/Oマッピングに向いている。<br>
<br>
利用方法<br>
「SELECT文」と「SELECT結果とエンティティクラスとのマッピング」を記述するだけでよい。<br>
<br>
→SQLを使い慣れている開発者や参照系が主体となるWebアプリケーションでR/Oマッピングを行うにはSpringJDBC抽象化フレームワークの利用のほうがお勧め。<br>
</span>
<hr size="2" width="100%">
<b style="color: rgb(255, 102, 0);">Spring
ORMインテグレーション機能</b><br>
<br>
<span style=
"color: rgb(255, 102, 0);">SpringJDBC抽象化フレームワークを必ず使う必要はない</span><br>
<span style="color: rgb(0, 0, 0);"><br>
<br>
<br>
<br>
<br></span><br>
<br>
プレゼンテーション層ではSpringのMVCフレームワークが利用可能<br>
<br>
<b style=
"color: rgb(255, 102, 0);">Springが提供するMVCフレームワークの構成</b><br>
<ul>
<li>
アプリケーションコントローラであるアプリケーションコントローラサーブレット</li>
<li>
コントローラサーブレットから呼ばれるコントローラクラス</li>
<li>その動作を制御する定義ファイル</li>
</ul>
これらを利用することによってUIとしてJSPだけでなくVelocityやXSLTなどを利用することが可能。<br>
<br>
アプリケーションコントローラの1つであるコントローラクラスはSpring MVCフレームワークが提供するクラスを継承して開発者が提供する。<br>
<br>
Spring MVCフレームワークを利用した場合、コントローラクラスはユーザからの入力データをWebコンテナに依存しないJavaBeansで取得でき、Webコンテナから分離された入力データの検証クラスを利用することができるのが利点。<br>
またコントローラクラスからサービスロジックを呼び出すには、DIコンテナからサービスロジックを取得して行わなければならない。これによりアプリケーションコントローラに不用意にサービスロジックを組み込む可能性が低くなる。<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">SpringWebインテグレーション機能<br>
<br></b><span style=
"color: rgb(255, 102, 0);">MVCフレームワークを必ず使う必要はない<br>
<br>
</span>Springを利用してWebアプリケーションを作るときに必要な機能<br>
Webインテグレーション機能を使えばUIの技術であるVelocityやMVCフレームワークであるStrutsを簡単にプラグインして利用することが可能<br>
<hr size="2" width="100%">
<b style="color: rgb(255, 102, 0);">ビジネス層</b><br>
Springがビジネス層に提供する機能はDIコンテナとAOP<br>
<br>
<b>DIコンテナとサービス、ドメイン</b><br>
サービスおよびドメインクラスはPOJOとして実装される(分散システムでないかぎりEJBを利用することはない)<br>
<br>
<u><b>DIコンテナを利用した場合に特徴的な設計</b></u><br>
<ul>
<li>
プレゼンテーション層のアプリケーションコントローラがサービスクラスを直接知らないようにすること</li>
</ul>
→アプリケーションコントローラは必ずDIコンテナを通してサービスクラスを取得してサービスロジックを利用するようにする。このときアプリケーションコントローラが取得するサービスクラスはI/Fとして取得する。つまりI/Fベースのやり取りを行うことが重要。<br>
<ul>
<li>
サービスクラスがデータアクセス層のデータアクセスフレームワークを直接知らないようにすること</li>
</ul>
→サービスクラスからデータアクセスクラスの利用も同様にDIコンテナからI/Fベースで行う。<br>
<br>
これにより隠そうの結びつきを緩くし、層の独立性を高め、変更の局所化が実現できる。<br>
<br>
<b>勘違いされやすいところ<br></b>DIコンテナはValueObjectのライフサイクル管理は行わない。<br>
ValueObjectの生成や削除は基本的にはデータアクセス層の役目。<br>
DIコンテナはサービスやデータベースアクセスといったロジック的に独立したコンポーネントを取得するためのもの!<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">AOPとトランザクション管理</b><br>
SpringではAOPの機能を使用してPOJOにトランザクションの機能を追加することでEJBと同等の宣言的なトランザクションを実現することができる。<br>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">データアクセス層<br></b><span style="color: rgb(0, 0, 0);">JDBCを直接扱うことは面倒&永続化ロジックを複雑にしてしまう<br>
<br>
SpringはJDBCを抽象化するためのフレームワークを提供している。<br>
SpringJDBC抽象化フレームワークはSQL文を利用するタイプのDBアクセスフレームワークでR/Oマッピングに向いている。<br>
<br>
利用方法<br>
「SELECT文」と「SELECT結果とエンティティクラスとのマッピング」を記述するだけでよい。<br>
<br>
→SQLを使い慣れている開発者や参照系が主体となるWebアプリケーションでR/Oマッピングを行うにはSpringJDBC抽象化フレームワークの利用のほうがお勧め。<br>
</span>
<hr size="2" width="100%">
<b style=
"color: rgb(255, 102, 0);">SpringORMインテグレーション機能</b><br>
<br>
<span style=
"color: rgb(255, 102, 0);">SpringJDBC抽象化フレームワークを必ず使う必要はない<br>
<span style=
"color: rgb(0, 0, 0);">SpringのO/Rマッピングインテグレーション機能を利用すればHibernateやiBATISが簡単に利用できる<br>
このインテグレーション機能を利用した場合、それぞれのフレームワークをじかに利用するよりも簡単になる。<br>
<br></span></span>
<hr size="2" width="100%">
今まで見てきたようにSpring上ではWebコンテナなどに影響されないPOJOベースのアプリケーションが作られる。<br>
POJOベースであるということはJUnitなどを利用したユニットテストが容易に可能だということ。<br>
<br>
インターフェースの実態は定義ファイルで管理しているので実装に影響を与えることなく利用するコンポーネントをMockオブジェクトに変更することができる。<br>
<span style="color: rgb(255, 102, 0);"><span style="color: rgb(0, 0, 0);"><br>
<br></span></span><span style="color: rgb(0, 0, 0);"><br>
<br>
<br>
<br>
<br></span><br>
<br>
表示オプション
横に並べて表示:
変化行の前後のみ表示: