【プログラミング】【java】Javaフレームワーク一覧と概要 - j-komatsu/myCheatSheet GitHub Wiki

Javaフレームワーク一覧と概要

目的

Javaでの効率的な開発を支援する主要なフレームワークを理解し、適切な選択を行うための情報を提供します。


フレームワークの概要

フレームワーク名 初登場年 主な用途 特徴 現在の人気
Spring Framework 2003 Webアプリケーション開発 DI(依存性注入)とAOP(アスペクト指向プログラミング)をサポート。豊富なエコシステム。 非常に高い
Hibernate 2001 ORマッピング データベースとオブジェクト間のマッピングを自動化。SQLをほぼ書かずにデータ操作可能。 高い
Struts 2000 MVCアプリケーション 古典的なMVCフレームワーク。大規模アプリケーションの基盤として使用される。 中程度
JSF (JavaServer Faces) 2004 Webユーザインターフェース Java EE標準フレームワーク。コンポーネントベースでリッチなUI構築が可能。 中程度
Play Framework 2007 Webアプリケーション開発 非同期処理をサポートし、Scalaでも利用可能。軽量でモダンな開発体験を提供。 高い
Vaadin 2009 Webアプリケーション開発 サーバーサイドで完全なUI構築が可能。HTMLやJavaScriptを直接書かずにリッチUIを構築。 中程度
Dropwizard 2011 マイクロサービス開発 組み込みWebサーバーやメトリクス収集をサポートし、マイクロサービス向けに最適化。 高い
Micronaut 2018 マイクロサービス開発 軽量で高速なフレームワーク。DIやAOPをコンパイル時に処理し、効率的。 高い
Quarkus 2019 クラウドネイティブ開発 GraalVMによるネイティブイメージの生成をサポート。コンテナ環境に最適化。 高い

フレームワークの選択基準

  1. プロジェクトの規模

    • 小規模プロジェクトには軽量なフレームワーク(例: Dropwizard, Micronaut)が適している。
    • 大規模プロジェクトにはエコシステムが充実したSpring Frameworkが最適。
  2. パフォーマンス要件

    • 高速な起動時間が求められる場合、QuarkusやMicronautが有力。
  3. チームのスキルセット

    • チームにJava EE経験者が多い場合、JSFやStrutsが適している。
    • 最新の開発体験を求める場合、Play FrameworkやSpring Bootが選択肢となる。
  4. エコシステムとコミュニティのサポート

    • 長期的なサポートを期待するならば、Spring FrameworkやHibernateが有利。

歴史と進化

時期 主な出来事
2000年 Strutsが登場し、JavaのMVCフレームワークとして広く採用される。
2001年 Hibernateがリリースされ、ORマッピングが一般化。
2003年 Spring Frameworkが登場。DIとAOPの普及を促進。
2004年 JSFがJava EE標準として導入。
2007年 Play FrameworkがモダンWebフレームワークとして人気を集める。
2011年 Dropwizardがマイクロサービス開発向けに最適化されたツール群を提供。
2018年 Micronautがリリースされ、コンパイル時DIにより軽量かつ高速な動作を実現。
2019年 Quarkusが登場し、クラウドネイティブアプリケーション向けに最適化される。

よく利用されているフレームワーク

  • Spring Framework

    • 豊富なドキュメントと大規模コミュニティ。
    • Spring Bootにより設定が簡素化され、迅速な開発が可能。
  • Hibernate

    • データベース操作の効率化。
    • Spring Data JPAとの組み合わせで強力なデータアクセス層を構築。
  • Quarkus

    • コンテナ環境やサーバーレス環境での使用に最適。
    • 高速な起動時間と低メモリ使用量。
  • Micronaut

    • シンプルで軽量。
    • サーバーレスやマイクロサービスアーキテクチャに最適。