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 Solution全記事一覧 |
- 実運用の障害対応時間比較に見る、ログ管理基盤の効果 (2017/5/9)
ログ基盤の構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。今回は、実案件を事例とし、ログ管理基盤の有用性を、障害対応時間比較も交えて紹介 - Chatwork、LINE、Netflixが進めるリアクティブシステムとは何か (2017/4/27)
「リアクティブ」に関連する幾つかの用語について解説し、リアクティブシステムを実現するためのライブラリを紹介します - Fluentd+Elasticsearch+Kibanaで作るログ基盤の概要と構築方法 (2017/4/6)
ログ基盤を実現するFluentd+Elasticsearch+Kibanaについて、構築方法や利用方法、実際の案件で使ったときの事例などを紹介する連載。初回は、ログ基盤の構築、利用方法について - プログラミングとビルド、Androidアプリ開発、Javaの基礎知識 (2017/4/3)
初心者が、Java言語を使ったAndroidのスマホアプリ開発を通じてプログラミングとは何かを学ぶ連載。初回は、プログラミングとビルド、Androidアプリ開発、Javaに関する基礎知識を解説する。
|
|