Seasar2とEJB3.0の比較

| | コメント(0) | トラックバック(1)

同じようなウェブアプリケーションをSeasar2とEJB3.0で実装し、どちらが簡単にできるかを比較しました。結論から言うと、作成するクラスや設定ファイルの数はEJB3.0の方が少なく、短時間でアプリケーションを構築することができました。

ウェブアプリケーションの詳細

作成したウェブアプリケーションはひとつの画面から構成されます。顧客の姓名を入力し、システムに送信すると、顧客がデータベースに登録され、登録されている顧客が一覧されます。

sample-screen.jpg

データベースの設計

今回のアプリケーションのデータベース設計は下記の通りです。データベースサーバにはMySQLを利用しました。

CREATE TABLE  customer (
  id int(10) unsigned NOT NULL auto_increment,
  firstname varchar(20) NOT NULL default '',
  lastname varchar(20) NOT NULL default '',
  PRIMARY KEY  (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Seasar2での実装

Seasar2で実装するにあたり、S2JSF Blank 1.0.14を利用しました。実装は、5つのパッケージから成る、合計3つのインターフェースと4つのクラスから構成されています。永続化層にはS2Daoを利用し、サービス層はPOJOで実装しています。ウェブ層はPOJOですが、S2JSFを意識した構成になっています。

seasar2.jpg

S2JSF Blankに含まれている6つの設定ファイル(diconファイル)のうち、app.diconとj2ee.diconの2つを修正しました。app.diconではインターセプターの設定を追加し、j2ee.diconではデータソースの設定を変更しました。

詳細については、ソースコードを参照してください。

EJB3.0での実装

EJB3.0での実装にはSunで配布されているJava EE 5 SDKを利用しました。実装は、3つのパッケージから成る、1つのインターフェースと3つのクラスから構成されています。永続化層にはJava Persistence APIを利用し、サービス層の実装クラスはStateless SessionBeanとして実装しています。ウェブ層はJSFを利用しています。

ejb3.jpg

設定ファイルは、3つ用意しました。データソースを指定するためのpersistence.xmlと、faces-config.xml、web.xmlです。

詳細については、ソースコードを参照してください。

比較

Seasar2を利用した実装はブランクアプリケーションから作成したため、簡単に構築することができました。ブランクアプリケーションには、多くの記述済み設定ファイルと依存ライブラリが含まれています。ですから、スクラッチからアプリケーションを組み立てるとなると、かなりの手間を覚悟する必要があるのではないかと思います。例えば、Mavenを利用したいという場合には、ブランクアプリケーションを利用することができません。

それに対して、EJB3.0を利用した実装は、Java EE 5の仕様の範囲内で作成しているので、アプリケーションサーバを除けば、特別に用意するものはありません。Seasar2を利用して実装したWARファイルが5.75MBなのに対して、EJB3.0を利用して実装したEARファイルは、たったの5KBです。

トラックバック(1)

このブログ記事を参照しているブログ一覧: Seasar2とEJB3.0の比較

このブログ記事に対するトラックバックURL: http://recompile.net/apps/mt-tb.cgi/18

» recompile.net: Seasar2とEJB3.0の比較(Curiosity Killed the Cat.)~のトラックバック

http://recompile.net/2006/05/seasar2ejb30.html 僕は実際まだEJB3.0でアプリをちゃんと作ったことがないん... 続きを読む

コメントする

著者について

高井直人
高井 直人
takai@recompile.net

ソフトウェアエンジニア。1977年横浜生まれ。大学在学中からネットワークや情報技術にたずさわる。Web制作会社などを経て、現在はシステムインテグレータに勤務。エンタープライズRubyをテーマに社内標準の策定などに従事している。

タグクラウド

ウェブページ

Powered by Movable Type 4.1-en-release-26-r1141-20080104