
今はSpringベースのアプリケーションを簡単に作成できる、『spring Boot』が注目されている
フレームワーク | 特徴 |
Spring Framework | ・DI(Dependency Injection:依存性注入)機能を備えたフレームワークとして定評がある ※依存性注入とは オブジェクトの成立に必要なコードを分離し、プログラム実行時に注入する手法 ・依存性注入によってクラスの依存関係が解消され、完成済みクラスをテストすることができるようなるったりするので システムを改修する場合も最低限の変更で済ませることができ、開発が楽になる ・オブジェクトの関連付け、生成、登録などを管理する「Coreモジュール」、 JavaBeansへのアクセス機能を提供する「Context モジュール」、 MVCモデルでの開発を提供する「Web MVCモジュール」など7種類のモジュールで構成されている |
Spring Boot | Spring FrameworkをWebアプリケーション開発向けに特化させたもの。 Spring Frameworkで必要だったConfigファイルの設定が不要であり、 ほとんどの設定を自動化されており、クラスパスの指定なども不要 |
Struts | ・オープンソースソフトウェアの開発を支援するApache Software Foundationによって開発されたMVCモデルのフレームワーク ・無償で提供されており、誰でも自由に利用することができ、再開発・再配布を行うことができる ・独自のカスタムタグの利用や、Actionクラスとstruts-config.xmlでの画面遷移の管理、バリデータ(入力チェック)機能の提供など ・Struts2ではアノテーションによる設定ファイルの削減や、DIコンテナ機能による外部ファイルでクラスの依存関係を設定できるなどの改良が加えられている ・フレームワークとしての歴史が古く、脆弱性の発見なども多くあげられている |
SAStruts | ・日本のオープンソースプロジェクトであるSeaserプロジェクトがStrutsをベースとして開発されたフレームワーク ・設定ファイルの自動生成機能により、設定ファイルの設定作業に必要な時間が大幅に軽減される ・プログラムを書き換え後、ホットデプロイ機能によりアプリケーションサーバーの再起動をすることなく実行できる ・SAStrutsは2016年9月26日 にEOL (End of Life)のためメンテナンスおよびサポートは終了 |
JSF | ・ユーザーインターフェース構築のためのフレームワーク ・JSFは企業向けのJavaプラットフォームJava EE(Java Platform, Enterprise Edition)に含まれている ・MVC(Model-View-Controller)モデル ※MVCとは ビジネスロジックを受け持つ「Model」、画面表示や入出力を受け持つ「View」、 ModelとViewを制御する「Controller」という3つの要素に分けて設計する手法 |
Play Framework | ・CPUリソースやメモリ使用量が少ないので、軽量なシステム開発に向いているのが特徴的 ・JavaとScalaで書かれているオープンソースのWebアプリケーションフレームワークであり、 MVCモデルが採用されている。 ・Ruby on RailsやDjangoの影響を大きく受けているため、これらと似た点が数多くある ・Ruby on Railsは「繰り返しを避けよ(DRY:Don’t Repeat Yourself)」 「設定より規約(CoC:Convention over Configuration)」を基本理念としており、 Play Frameworkにも受け継がれている |
Apache Wicket | ・Apacheが提供するWebアプリケーション開発フレームワーク ・Javaで作られたWebプレゼンテーション層(ユーザーインターフェイス)のためのフレームワーク ・ピュアJavaとピュアHTMLを使ったシンプルな構造 ・1つのWebページに対して1つのJavaクラスを作成 ・ 基本的にJavaだけを使ってシンプルに開発できる |
Dropwizard | ・web.xml等、サーブレットに関するファイルは全くなく、ほぼ隠蔽されている ・ビルド時に依存するライブラリをすべて1つのjarにパッケージングし、 組み込みのJettyサーバを利用(tomcat等は不要) ・JAX-RSの実装であるJersey(ジャージー)を使ったRESTfulに対応 ※JAX-RS:Java API for RESTful Web Services:JavaでつくるリッチなWebアプリのためのAPI ※Jersey:JAX-RSを参照実装しているAPIでJavaで作るWebアプリをREST対応にするために必要な作業を簡素化できる技術 |
ZK | ・オープンソースのユーザーインターフェース(UI)のフレームワーク ・JavaScriptやAJAXを学ぶ事なく、Webサイトなどのアプリケーションを作成する事ができる ・数百ものコンポーネント(UIの構成要素)を組み合わせることができる ・UIを作成するのに大きく分けて2種類の方法がある ①JavaでプラグミングによりUIを開発する方法→Richlet ②XMLベースでUIを定義する方法→ZUML(ZK User Interface Markup Language) |
Ninja web framework | ・Javaのマイクロフレームワーク マイクロフレームワーク:単一のアプリケーションを小さなサービス群の組み合わせとして構築する手法 それぞれのサービス同士は疎結合とし、RESTful APIなどで接続をおこなう ・MVC(モデル・ビュー・コントローラ)の概念を採用して、簡潔かつ一貫した方法で、いかなるサイズのアプリケーションでも作成できる ・スケーラビリティやシンプルさを提供 ・フルスタックフレームワークとしては、他のものよりもメモリ使用量が大きい ・カスタマイザビリティは小さい |
Spark Framework | ・シンプルな構成・軽量のマイクロフレームワーク ・Java8のラムダ式を採用し、できるだけプログラムを簡潔に書くことを目指している (=Java8以上必須) ・組み込みのWebサーバが内蔵されているため、APサーバを別途建てること無くアプリケーションを実行することが出来る ・合理的でシンプルさを目指す反面、機能性は低め |
Java EE | ・Java標準仕様のフレームワークでかつてはJ2EE(Java 2 Platform, Enterprise Edition)と呼ばれていた ・ServletやJSP、EJBやJavaの各種APIなど、大規模システムの構築に必要な機能がまとめて提供されている ・Java EEの仕様は、企業や団体によって構成されるオープンなコミュニティ「Java Community Process(JCP)」で策定されている |
コメント