Javaフレームワーク一覧|Spring Boot・Struts・JPA・MyBatisの違いと最新バージョン【2026年10月】
Javaの主なフレームワークは、Webアプリの土台になるSpring Boot・Jakarta EE・Quarkus・Micronaut・Struts、データベース操作のJPA(Hibernate)・MyBatis、テストのJUnit・Mockito、ビルドのMaven・Gradleです。いま新しく学ぶなら、まずSpring Boot(2026年10月18日時点の最新版は4.1.1)を選べば間違いありません。
Javaのフレームワークは数が多く、役割も世代もばらばらです。この記事では、主要なものを4つの用途に分けて一覧にし、それぞれの最新バージョンを公式の配布元(Maven Central)で確認しました。よく質問される「StrutsとSpringの違い」「JPAとMyBatisの違い」も整理します。フレームワークという言葉自体の意味はフレームワークとライブラリの違いで解説しています。
Javaフレームワーク一覧(用途別・最新バージョン)
| 用途 | 名前 | 最新の安定版 | ひとことで |
|---|---|---|---|
| アプリの土台 | Spring Boot | 4.1.1 | 現在の主流。迷ったらこれ |
| Jakarta EE(旧Java EE) | 11(API 11.0.0) | 企業向けの標準仕様 | |
| Quarkus | 3.40.1 | 起動が速く、コンテナ向き | |
| Micronaut | 5.2.16 | 軽量・マイクロサービス向き | |
| Apache Struts 2 | 7.4.0 | 古いシステムの保守で見かける | |
| データベース操作 | Hibernate ORM(JPAの実装) | 7.4.13 | クラスとテーブルを対応づける |
| Spring Data JPA | Spring Bootに同梱 | Spring BootでJPAを使う標準の方法 | |
| MyBatis | 3.5.19 | SQLを自分で書いて結果をクラスに入れる | |
| テスト | JUnit | 6.1.3 | テストの基本 |
| Mockito | 5.24.0 | 依存する部品を差し替えて検証する | |
| ビルド・依存管理 | Maven | ― | 設定ファイル(pom.xml)でライブラリを管理 |
| Gradle | ― | 柔軟な記述ができる。Androidでも標準 |
バージョンはMaven Centralの各ライブラリの公開情報から、マイルストーン版・ベータ版を除いた最新の番号を拾っています(2026年10月18日確認)。Spring Boot 4.1.1が採用しているSpring Frameworkは7.0.9です(spring-boot-dependencies 4.1.1)。Jakarta EE 11の公開はJakarta EE公式の仕様ページで確認できます。
初学者が「フレームワーク」と聞いて思い浮かべるのは1行目(アプリの土台)ですが、実務では4つの用途すべてを組み合わせて使います。求人票に並んでいる名前がどの用途のものかを見分けられると、学ぶ範囲がはっきりします。
アプリの土台になるフレームワーク
Spring Boot(現在の主流)
Javaの業務開発でもっとも広く使われています。Spring Bootは「Spring Framework」という大きな仕組みの上に作られた、設定を最小限にしてすぐ動かせるようにするための層です。求人票に「Spring」とだけ書かれている場合も、実際にはSpring Bootを指していることがほとんどです。
- 用途:Webアプリ、API、バッチ処理
- 特徴:起動用のサーバーを内蔵し、単体で実行できる形にまとめられる
- 学習:日本語の情報が多く、詰まったときに答えを見つけやすい
Jakarta EE(旧Java EE)
Javaの企業向け標準仕様です。もとはJava EEという名前で、Eclipse Foundationに移ってからJakarta EEになりました。パッケージ名がjavax.*からjakarta.*に変わったため、古いシステムを新しい環境に移すときにはこの書き換えが必要になります。大企業の基幹システムや、既存システムの保守で出会います。
Quarkus・Micronaut
起動の速さとメモリの少なさを重視した、比較的新しい世代のフレームワークです。コンテナやクラウドで小さなサービスをたくさん動かす用途に向いています。Spring Bootを一通り使えるようになってから、必要に応じて触れれば十分です。
Struts(保守案件で残っている)
2000年代に広く使われたフレームワークです。新規開発で選ばれることはまずありませんが、古い業務システムの保守では今も見かけます。後の章で、Springとの違いを詳しく整理します。
StrutsとSpringの違い
「Struts」と一口に言っても、Struts 1とStruts 2はまったく別物です。ここを分けないと話がかみ合いません。
| Struts 1 | Struts 2 | Spring Boot | |
|---|---|---|---|
| 状態 | サポート終了(EOL) | 開発継続中(最新7.4.0) | 開発継続中(最新4.1.1) |
| 最後のリリース | 1.3.10(2008年12月) | ― | ― |
| 担当範囲 | Web画面の処理(MVC) | Web画面の処理(MVC) | Web・DB・セキュリティ・バッチなどアプリ全体 |
| 新規開発での採用 | 非推奨(公式が推奨しない) | まれ | 主流 |
| 出会う場面 | 古いシステムの保守・移行 | 既存システムの保守 | 新規開発・保守の両方 |
Apache Strutsの公式サイトのStruts 1 EOLのお知らせによると、Struts 1の最後のリリースは2008年12月の1.3.10で、サポートは終了しています。重大な脆弱性が見つかっても修正版は出ないため、自分でパッチを当てるか、別のフレームワークに移行するしかない、と公式が明記しています。新規プロジェクトでStruts 1を使うことも「勧めない」としています(2026年10月18日確認)。
Struts 2は今もリリースが続いている現役のプロジェクトですが、担当するのはWeb画面の処理(MVC)が中心です。一方Springは、Web画面に加えてデータベース接続、トランザクション、認証(Spring Security)、バッチ(Spring Batch)まで一つの体系で揃うのが大きな違いです。このため新規開発ではSpring Bootが選ばれ、Strutsは「保守・移行の案件で読めると強い」という位置づけになっています。
データベース操作:JPA(Hibernate)とMyBatisの違い
| JPA(Hibernate・Spring Data JPA) | MyBatis | |
|---|---|---|
| 考え方 | クラスとテーブルを対応づけ、SQLは自動生成 | SQLを自分で書き、結果をクラスに入れる |
| 書く量 | 少ない(基本操作はメソッド名だけで済む) | 多い(SQLを書く) |
| SQLの見通し | 生成されるSQLが見えにくい | 書いたSQLがそのまま動く |
| 向いている場面 | 新規のWebサービス、標準的なデータ操作 | 複雑なSQL、既存SQLの資産、性能の調整 |
JPAは仕様の名前で、Hibernateがその代表的な実装です。Spring Bootでは「Spring Data JPA」を通して使うのが一般的です。MyBatisもSpring Boot用の連携ライブラリ(mybatis-spring-boot-starter)が公開されており、どちらもSpring Bootと組み合わせられます。複雑なSQLを多く抱える業務システムではMyBatisが選ばれることが多く、両方を使い分けるプロジェクトもあります。
SQLの基本で詰まった場合は、SQLでテーブル一覧を取得する方法で構造の調べ方を、比較演算子の言語別まとめでNULLの扱いなどを整理しています。
テストとビルドのフレームワーク
| 名前 | 役割 |
|---|---|
| JUnit | テストを書いて実行する基本の仕組み |
| Mockito | データベースや外部APIなど依存する部品を、テスト用の偽物に差し替える |
| AssertJ | 検証の書き方を読みやすくする |
| Testcontainers | テストのときだけデータベースなどを一時的に起動する |
| Maven・Gradle | ライブラリの取得とビルドを自動で行う |
Spring Bootのテスト用スターターには、JUnitとMockitoが最初から含まれています(spring-boot-dependencies 4.1.1ではJUnit 6.0.3、Mockito 5.23.0)。MavenとGradleは役割が同じなので、両方を先に覚える必要はありません。参加するプロジェクトで使われているほうを覚えれば十分です。
学ぶ順番
- Javaの基本文法とクラスの考え方
- ビルドツール(MavenかGradle)
- Spring Bootで画面やAPIを動かす
- データベース連携(Spring Data JPAかMyBatis)
- テスト(JUnit+Mockito)
- 必要になったらQuarkusやStrutsなど
3と4を同時に始めると、どこでエラーが出ているのか分からなくなりがちです。まずSpring Bootだけで動く状態を作り、それからデータベースを足す順番が確実です。Java自体の学び方はJavaの勉強は未経験から何をする?、Javaの現状と将来性はJavaはオワコン?で解説しています。
求人票に書かれたフレームワーク名の読み方
| 求人票の記載 | 読み取れること |
|---|---|
| Spring Boot・Spring | 比較的新しい開発。現在の主流 |
| Java EE・Jakarta EE | 大企業の基幹系か、既存システムの保守 |
| Struts | 古いシステムの保守や移行。Struts 1なら移行案件の可能性が高い |
| MyBatis | SQLを直接書く業務システム寄り |
| JPA・Hibernate | オブジェクト中心の設計 |
新旧の名前が併記されているのは珍しくありません。面接で「新規開発と保守の比率」を聞いておくと、入社後の仕事の中身が見えます。求人票全体の見方は未経験エンジニアの求人の見分け方で整理しています。
よくある質問
Q. Javaのフレームワークは全部覚える必要がありますか?
ありません。実務で使うのは、アプリの土台が1つ、データベース操作が1つ、テストが1〜2つ、ビルドツールが1つ程度です。
Q. StrutsとSpringの違いは何ですか?
Struts 1は2008年12月の1.3.10が最後のリリースでサポートが終了しています。Struts 2は開発が続いていますがWeb画面の処理が中心で、Spring BootはWeb・データベース・認証・バッチまでアプリ全体を扱えます。新規開発ではSpring Bootが主流です。
Q. JPAとMyBatisはどちらを学ぶべきですか?
新規のWebサービスならSpring Data JPA、複雑なSQLを扱う業務システムならMyBatisが向いています。参加する現場で使われているほうを優先してください。
Q. KotlinでもJavaのフレームワークは使えますか?
使えます。KotlinはJavaと同じ環境で動くため、Spring Bootをはじめ主要なフレームワークをそのまま利用できます。
KotlinについてはKotlin入門ガイドを参照してください。
まとめ
- Javaのフレームワークは「アプリの土台・データベース操作・テスト・ビルド」の4つに分けると整理できる
- アプリの土台は、迷ったらSpring Boot(2026年10月18日時点で4.1.1)
- Struts 1はサポート終了、Struts 2は現役だが保守案件が中心
- データベースは、標準的な操作ならJPA、SQLを細かく書きたいならMyBatis
- 学ぶ順番は、文法 → ビルド → Spring Boot → データベース → テスト
Java以外の言語のフレームワークも含めた全体像はWebフレームワークとは?、言語選びはプログラミング言語一覧、職種ごとの違いはエンジニア職種の違い完全整理で扱っています。



