Webアプリケーションフレームワークの定番

Javaオープンソースセンターでは、Java開発に関連するさまざまなオープンソースを紹介していきます。また、開発者に便利なリンク集も今後充実させていく予定です。(編集局)

クロノス
阪田浩一/滝本雅仁
2005/8/18



 Spring

ライセンス形態 Apache Software License 2.0
ダウンロード http://www.springframework.org/download

 Spring Framework(以下Spring)は、Rod Johnson氏が書籍『Expert One-on-One J2EE Design and Development』(邦題『実践 J2EEシステムデザイン』)で発表したコードを基にして開発されているアプリケーションフレームワークである(http://www.springframework.org/)。

 Spring はSeasar2(http://www.seasar.org/)やPicoContainer(http://www.picocontainer.org/)と同様に軽量コンテナに分類され、核となるDI(Dependency Injection/依存性注入)コンテナの機能のほかにAOP(Aspect Oriented Programming)やMVCフレームワーク、JDBCを使いやすくするJDBC抽象フレームワーク、トランザクション管理といった多くの機能を提供している。また、これらを任意に組み合わせることができる。さらに、HibernateなどO/RマッピングフレームワークやStruts、EJBなどとの統合が可能である。

 最新バージョンは1.2.3(2005年8月現在)である。

 Struts

ライセンス形態 Apache Software License 2.0
ダウンロード http://struts.apache.org/download.cgi

 StrutsはApache Software Foundationのプロジェクト(http://struts.apache.org/)として開発されているWebアプリケーションを開発するためのオープンソースフレームワークの1つである。StrutsはJava Servlet、JavaServer Pages(JSP)、JavaBeansの技術を用いた、MVCモデル2と呼ばれるモデル-ビュー-コントローラ(MVC)アーキテクチャを採用している。

 Strutsは主にコントローラ(C)の機能を提供しており、開発者はモデル(M)とビュー(V)を開発する。これらはStrutsの設定ファイルによって関連付ける必要がある。ビューにはJSP以外にも、Velocity、XSLTなどが使用可能であり、JSPを使用する場合は、Strutsのカスタムタグが利用できる。Strutsのカスタムタグは、JSPにおける表示のためのロジックをカプセル化しており、作成するビューで動的なデータを簡単に扱えるように、さまざまな種類のタグが用意されている。これらの機能はStrutsの設定ファイルに何らかの形で依存する。

 最新バージョンは1.2.7(2005年8月現在)である。

 Tapestry

ライセンス形態 Apache Software License
ダウンロード http://jakarta.apache.org/tapestry/downloads.html

  Tapestryは「The Apache Jakarta Project」(http://jakarta.apache.org/)で開発されているWebアプリケーションフレームワークである。

 プレゼンテーション層を対象としており、JSPではなく「HTMLテンプレート」と呼ぶものにレイアウトを記述するところがTapestryの特徴である。このHTMLテンプレートはほとんど通常のHTMLファイルと同じであり、HTMLとして表示できるため、デザインとプログラムを分離することができる。

 実際には通常のHTMLの要素ではなく、「Java Web Component(JWC)」というコンポーネントでHTMLテンプレートを作成している。JWCにはHTMLの要素に対応するものやそのほか便利なものが標準で用意されている。また、複数のコンポーネントを組み合わせたコンポーネントや独自のコンポーネントを作成することもできる。Tapestryはプレゼンテーション層のフレームワークであるため、J2EEやSpring、Seasar2などと組み合わせて使用することも可能である。

 最新バージョンは4.0(2005年8月現在)である。

 Velocity

ライセンス形態 Apache Software License
ダウンロード http://jakarta.apache.org/site/downloads/downloads_velocity.html

 Velocityは「The Apache Jakarta Project」(http://jakarta.apache.org/)で開発されている汎用テンプレートエンジンである。作成したテンプレートから何らかの出力を行うものである。

 このテンプレートの作成にはVelocity Template Language (VTL)というスクリプト言語を使用する。VelocityはVTLを使って作成したテンプレートに値をセットして出力を行う。用途としては特にWebページの出力に限っておらず、テキスト形式であればどのようなものも出力できるため、ソースコードやSQLなども可能である。

 また、Velocityにはサブプロジェクトを集めたVelocity Toolsがある(http://jakarta.apache.org/velocity/tools/)。ここには、ツールやユーティリティを集めたGenericTools、Web アプリケーションでVelocityを使用するためのVelocityView、Strutsと統合するためのVelocityStrutsがある。VelocityStrutsを使えば、JSPの代わりにVelocity のテンプレートを適用することができる。

 最新バージョンは1.4(2005年8月現在)である。

 WebWork

ライセンス形態 The OpenSymphony Software License, Version 1.1
ダウンロード http://www.opensymphony.com/webwork/download.action

 WebWorkはOpenSymphony(http://opensymphony.com/)によって開発されている、Pull HMVC(Pull Hierarchical Model View Controller)というコンセプトをベースとした、シンプルさが売りのWebアプリケーションフレームワークである。

 WebWorkはバージョン2から汎用的なコマンドパターンフレームワーク部分をXWorkという形で分離している。XWorkはアクション、インターセプタ、入力値のチェック、式言語などのWebに依存しない機能を提供しており、式言語はOGNL(Object-Graph Navigation Language)を採用している。アクションにはビジネスロジックを記述するが、基本的にServlet APIを使うことなく記述できるため、Webに縛られることのない開発を行うことができる。また、アクションはIoC(Inversion of Control)コンテナ機能を使用して、定義ファイルに基づいて生成されたコンポーネントを受け取ることができる。ビューはJSPとVelocityをサポートしており、ビューで使用できるUIコンポートネントも用意されている。

 最新のバージョンは2.1.7(2005年8月現在)である。



Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間