
Webアプリケーションフレームワークの定番
| Javaオープンソースセンターでは、Java開発に関連するさまざまなオープンソースを紹介していきます。また、開発者に便利なリンク集も今後充実させていく予定です。(編集局) |
クロノス
阪田浩一/滝本雅仁
2005/8/18
|
|
Spring |
|
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 |
|
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 |
|
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 |
|
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 |
|
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オープンソースセンター バックナンバー
- 第1回 フリーのWebコンテナ/EJBコンテナを整理する
- 第2回 Java開発支援ツールの定番
- 第3回 Webアプリケーションフレームワークの定番
| Java Solution全記事一覧 |
TechTargetジャパン
- Scalaのパッケージ、アクセス修飾子、オブジェクト継承 (2012/5/22)
インポート、パッケージオブジェクト、抽象クラス/抽象メソッド、オーバーライド、final、シールドクラスなども - 基幹系システムでCloud SQLは使えるか試してみた (2012/5/17)
サンプルとしてMRPシステムを作成して動かし、「再帰呼び出し」などのパフォーマンスを測定して検証してみます - アジャイル管理ツール9選+Pivotal Tracker入門 (2012/5/14)
群雄割拠のアジャイルプロジェクト管理ツールを9つ紹介し、特に注目を集めているPivotal Trackerの基本的な使い方を解説します - サーバサイドJSやJavaでWebアプリが作れるXPages (2012/5/11)
Notes/Dominoの資産をサーバサイドJavaScriptやJavaで操作し、HTMLやJavaScript、CSSをUIにできる技術を紹介
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -
