1. まとめトップ

この記事は私がまとめました

yoshisk2001さん

◆Apache Struts

整備されたJSPカスタムタグによってJavaコードはJSPファイルとは分離され、 従来のJSPのように HTMLタグの中に<%と%>で囲まれたスクリプトレットであるJavaソースコードを混在させる必要なく読みやすく洗練されたコーディングをできるようになる。

サーブレットから設定ファイル(struts-config.xml)に指定されたアクションクラスを呼び出し、アクションクラスの実行結果により、画面表示を決める事ができます。

言語毎に 各画面項目、エラーメッセージなのを定義したapplication.properties (日本語用「application.properties」、英語用「application_en.properties」など)を用意し 設定ファイル(struts-config.xml)で切り替えることで、 言語毎にJSPを用意するのではなく、1つのJSPで多言語化することができる。 ファイル名の次に、“_”と言語名を記載します。

入力チェックを定義したフォ-ム定義ファイルの作成(validation.xml)を作成し 設定ファイル(struts-config.xml)でアクションフォームを指定し アクションフォームで入力値や結果値のデータの整合性等を確認する事ができます。

◆SAStruts

SAStruts(Super Agile Struts)とは、Strutsを使った開発をSuper Agileに行なうためのフレームワーク。Super Agileとは、スクリプト言語が持つAgileと型の強い言語の良さをあわせもつ、スクリプト言語(Agile)の良さを超える(Super)なフレームワークです。

規定に従ったアクションクラスの配置と命名の規則により、画面からアクションクラスを呼び出すことができます。

アプリケーション構成で実感したのは、「アクションクラスの配置と命名を規定と合わせる事で設定ファイルを記述する必要がない」という事です。

画面からの入力値を受け取る変数領域(フォームクラス)の指定をアノテーションとしてソースファイルに設定を記述することができます。

プログラム修正時のサーブレットコンテナ再起動はしなくてもよく、クラスを置き換え後に、デプロイをしなくても、リクエスト毎にクラスローダがデプロイします。

◆Spring Framework

クラス(やライブラリ)の動作に必要な他のクラスを そのクラス内で生成するのではなく、Springに生成を まかせます。生成されたクラス群は、Springの 設定ファイルによって、自動的に結合されます。

Springは、Hibernate, Struts, Velocity, FreeMarkerなどの 外部のオープンソースソフトウェアとの連携に非常に優れています。 たとえば、アプリケーションの出力として、 HTML(JSP、Velocity、FreeMarker)、XML(XLST)、Excel、PDF などを使うことができます。

また、データベースのアクセスライブラリとしては、 Hibernate、JDO、Oracle TopLink、iBATIS、Apache OJB などを選択することができます。

Springをフレームワークとして採用しておけば、 将来、新しい技術やライブラリが登場しても、 アプリケーションの本体部分を変更することなく、 出力部分のライブラリだけを差し替えることにより、 簡単に対応できるということが期待できます。

◆JSF

JSFの強みは、Javaの標準仕様であることだ。StrutsはApache Software Foundationという、いちオープンソースコミュニティが開発したフレームワーク製品に過ぎないが、JSFはJava ServletやJava Server Pages(JSP)と同様、JCP(Java Community Process)※1で仕様が策定されているJava標準仕様だ。

◆Seasar

Seasarは、初め2003年8月にJettyとHSQLDBを使ったアプリケーションサーバとして、SourceForge.jp上で公開された。 その名前は、比嘉氏の出身地である沖縄の象徴的な生き物であるシーサーに因んで名付けられた。

その他のDIコンテナと同じように、コンポーネントは、外部XMLファイルに定義する。データーベースの設定や、JUnitによるユニットテストの支援についても同様に定義する。

その他のフレームワークとの主な違いは、「設定よりも規約」という概念のサポートである。それは、Spring Framework等で必要なXMLによる設定の減少である。 開発者にフレームワークを動作させるための規約に従わせ、設定ファイルを減らすか除去することを目的とする。

例えばもし、プロパティの型が、ただ一つの実装を持つインターフェースならば、依存関係はコンテナによって自動的に設定される。 もし、テストクラスのメソッドの末尾が、"Tx"ならば、トランザクションは、テスト実行前に初期化され、テスト終了後にロールバックされる。

◆Play Framework

Play Framework(プレイ・フレームワーク)は、ScalaとJava言語で書かれたオープンソースのWebアプリケーションフレームワークである。Model View Controller (MVC) アーキテクチャを採用しており、設定より規約やホットリローディング、エラーのブラウザ上への表示といった方針により、開発者の生産性を上げることを目的としている。[1]

Play Frameworkは、Ruby on RailsとDjangoから大きな影響を受けた、これらと似た同種のフレームワークである。PlayのWebアプリケーションはJava環境で動作するが、Java標準のWebアプリケーション仕様であるJava EEの中核機能は必要としない。PlayはJava EEの仕様に準拠しないが、その代わりにJava EE準拠のプラットフォームと比較してシンプルに開発を行うことができる。[14]

Play Frameworkのアプリケーションは組み込みのNetty(英語版) Webサーバーを使用して実行するよう設計されている。しかし、開発したアプリケーションをWARパッケージにまとめ、Java EEのアプリケーションサーバで動作させることも可能である。[15]

◆Java EE

1 2