2008年06月11日

1.2 Usage Scenarios

上述した各モジュールを使用して、さまざまな状況でSpringを使用することができます。アプレットから本格的なエンタープライズアプリケーションにいたるまで、Springのトランザクション管理機能やWeb統合機能を使用することができます。

[図:Springを使用した本格的なWebアプリケーションの典型]

Springの宣言的トランザクションマネジメントによって、WebアプリケーションにEnterprise Java Bean(EJB)のコンテナ管理トランザクションを使用するのと同様のトランザクション管理を適用することができます。すべてのビジネスロジックは、IoCコンテナ管理の下でシンプルなPOJOとして実装することができます。Web層から独立ているE-mail送信やバリデーションなどの補助的なサービスは、バリデーションルールを適用する場所を制限しません。ORMサポート機能はJPA、Hibernate、JDO、iBatisと違和感なく統合されています。たとえばHibernateを使用する際に既存のマッピングファイルとHibernate標準のSessionFactoryの設定を使用することができます。フォームコントロールはドメインモデルを持つWeb層と統合され、ActionFormやHTTPパラメータをドメインモデルに詰め替えるという作業を不要なものとします。

[図:サードパーティのWebフレームワークを使用したSpringの中間層]

完全に別のフレームワークに移行するということができない状況ということもあるでしょう。Spring Frameworkはそのすべてを使用することを強いる仕組みは採用していません。WebWork、Struts、Tapestryあるいはその他のUIフレームワークを使用した既存のフロントエンドを、Springのトランザクション機能を使用した中間層とをきれいに統合することは簡単なことです。しなければならない事は、ビジネスロジックをApplicationContextを使用して組み上げ、WebApplicationContextを使用してWeb層をまとめ上げることだけです。

[図:リモート使用シナリオ]

Webサービスを使用して既存のコードにアクセスする場合は、SpringのHessianProxyFactory、BurlapProxyFactory、RmiProxyFactory、JaxRpcProxyFactoryのいずれかを使用することができます。既存のアプリケーションに、ある日から急にリモートアクセスすることになったとしても、それはもはや難しいことではありません。

[図:既存のPOJOをラップするEJB]

Spring FrameworkはEJBへのアクセスレイヤおよび抽象化レイヤを提供します。これにより既存のPOJOをStateless Session Beanにラップすることができます。これは宣言的セキュリティを必要とする拡張性がありフェイルセーフなWebアプリケーションの一部としてこのPOJOを再利用できるということです。

原文:http://static.springframework.org/spring/docs/2.5.x/reference/introduction.html#overview-usagescenarios

1.1 Overview

1.1 概要

Spring Frameworkではその多彩な機能を、下図に示した6つのモジュールとして提供しています。この章では各モジュールを順に見ていきましょう。

[図:Spring Frameworkの概観]

「Core」パッケージはSpringの核となる部分で、IoC/DI機能を提供します。Coreパッケージの基本概念であるBeanFactoryはFactoryパターンの機能を持つ洗練されたクラスです。これによって、Singletonのコーディングは不要になり、プログラムロジックを設定と仕様への依存から解放します。

「Context」パッケージはCoreパッケージの補助的なもので、JNDIレジストリサービスのような方法でオブジェクトにアクセスする方法を提供します。ContextパッケージはBeansパッケージからその機能を引き継いでおり、それに加えて国際化(たとえばリソースバンドルの使用)、イベントの繰り上げ(event propagation)、リソースのロード、サーブレットコンテナ等の外部で作成されたコンテキストの使用に対応しています。

「Dao」パッケージは、単調なJDBCの実装やデータベース固有のエラーコード解析の手間を省くための、JDBC抽象化レイヤーを提供します。さらに、宣言的トランザクションおよびプログラム制御トランザクションを、特定のインターフェイスを実装したクラスだけでなく、POJO(Plain Old Java Objects)に対しても提供します。

「ORM」パッケージは一般的なO/RマッピングAPI(JPA、JDO、HibernateおよびiBatis)をSpringから使用するためのパッケージです。ORMパッケージはこれらのO/Rマッピングフレームワークを、Springが提供する他の機能(たとえば前述の宣言的トランザクション管理など)と同時に使用することができます。

「AOP」パッケージはAOP Allianceに準拠したアスペクト指向プログラミングの機能を提供します。これによりメソッドのインターセプトやポイントカットを使用して、論理的には分割されるべき機能を分離することができます。またソースレベルメタデータ機能を使用することでコード中にそのコードの振る舞いに関する情報を組み込むことができます。これは.Netの「属性」に似た機能です。

「Web」パッケージはファイルの分割アップロードや、サーブレットリスナを使用したIoCコンテナの初期化、Web向けアプリケーションコンテキストといった機能を持つ、Web指向の統合パッケージです。WebWorkあるいはStrutsをSpringとともに使用する際にも必要となるパッケージです。

「MVC」パッケージはWebアプリケーション向けのMVC(Model-View-Controller)実装を提供します。SpringのMVCフレームワークは単なるMVCではなく、ドメインモデルとWebフォームを完全に切り離し、さらに他のSpringの機能を使用できる環境を提供します。

原文:http://static.springframework.org/spring/docs/2.5.x/reference/introduction.html#introduction-overview

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。