Spring2.0 VS EJB3.0

summary of "Make the Right Decision with Our Side-by-Side Comparison of Spring and EJB 3.0"
------------------------------
Def

Spring=実装

EJB3.0=仕様

------------------------------
Webサイトにおいて

Spring:
階層化されたJava/J2EEアプリケーションフレームワーク

EJB3.0:
オブジェクト指向、分散型、企業レベルの各アプリの開発および配備のためのコンポーネント・アーキテクチャ

フレームワーク=サポート
アーキテクチャ=決定

------------------------------
持続性

Spring:サポートする
EJB3.0:サポートする

Springは、持続性の設計思想を忠実に守り、持続性のFWを再実装はせず、JDBC、Hibernate、JDO、iBatis、JPA(Java Persistence API)等のFWを統合。
EJB3.0は、エンティティBeanをJPAで置き換え。

□JPA
簡素化された軽量なオブジェクト関係マッピングFWを提供することを目指したもの。
JPAの仕様は、持続性プロバイダとのインタラクション、リレーショナルDBへのentityのmpgのための各IFをdef。

------------------------------
持続性

Spring
Hibernateとの連携の詳細がHibernateDaoSupportクラスによって抽象化されてる。
HibernateDaoSupportクラスはHibernateのplumbingを提供してSpringのHibernateテンプレートと依存関係との連携を支援する。

EJB3.0
コンテナによってentityManagerが自動的に注入される。

□HibernateのSessionとJPAのEntityManager
Hibernate#sessionはentity cacheであると同時にORMエンジンへのIFでもあるが、
JPAでは、これら2つは別物。

------------------------------
持続性

Spring/Hibernate#mapping = xml file

JPA-AP = annotation
→必要な設定が減り、変更対象のobjectに近い場所にmpg dataを置く事で可視性がup。

------------------------------
持続性#cache処理
cache=ORMツールを扱う場合に重要な概念の1つ

Spring
スレッドローカル変数を用いてsession(transaction)をスレッドにアタッチするアプリによってcache処理が実現。

EJB3.0
持続性ctxがtransactionに自動的に伝搬される。

□延滞初期化(lazy initialization)
持続性entityをDBから取得する度にその関係を全て自動的にフェッチするのは非効率的。実際にdataが必要になるまで特定のDB操作を保留すること。

------------------------------
持続性#cache処理

Spring/Hibernateがとっているアプローチは、viewの作成に応じてcacheのopen/closeを行うもの。
Springには、これを簡単化するOpenSessionInViewFilterが用意されている。
(ただし、設定が要る。)

EJB3.0仕様では、持続性ctxに興味深いscopeが追加されており、ステートフルセッションBeanの存続期間を上限としてcacheの存続期間を制限することが可能。
これは拡張持続性コンテキスト(extended persistence context)と呼ばれ、その指定はステートフルセッションBeanにおいて持続性ctxに注釈を付けることによって行う。


------------------------------


ref:
Rod Coffin, "Make the Right Decision with Our Side-by-Side Comparison of Spring and EJB 3.0", August 31, 2006
en: http://www.devx.com/Java/Article/32314
ja: http://japan.internet.com/developer/20061114/print27.html

tag : EJB Spring

2007-05-21 00:31 : j2ee : コメント : 0 : トラックバック : 0 :
コメントの投稿
非公開コメント

« next  ホーム  prev »

search

ad



counter


tag cloud

category cloud