
1. フレームワーク不要論とは
Javaコミュニティでは昔から「フレームワーク不要論」が存在します。
その主張はシンプルです。
- フレームワークが重すぎる
- 学習コストが高い
- 内部処理が見えにくい
- Java本来の仕組みを理解できなくなる
実際、Spring Bootを利用すると数行のコードでWeb APIを作成できますが、その裏側では大量のライブラリや設定が動作しています。
便利である一方で、「なぜ動くのか分からないまま開発している」という状態になりやすいことも事実です。
そのため、Javaそのものの仕組みを理解するために、あえてフレームワークを使わず開発する考え方も存在します。
2. Java標準機能だけでできること
結論から言うと、Java単体でもかなり多くのことができます。
Javaだけで作れるもの
意外かもしれませんが、Webアプリケーションも開発可能です。
Javaには標準ライブラリとして多くの機能が含まれています。
主な標準ライブラリ
つまり、基本的な業務システムを構築するための部品は最初から揃っています。
3. Java単体開発の仕組み
Java単体開発を理解するには、まずJava実行環境を知る必要があります。
全体構造
Javaソースコード
↓
javac
↓
Bytecode
↓
JVM
↓
OS上で実行
JVMとは
JVM(Java Virtual Machine)はJavaプログラムを実行する仮想環境です。
同じJavaプログラムが、
- Windows
- Linux
- macOS
で動作する理由は、このJVMのおかげです。
JDKとは
JDK(Java Development Kit)は開発キットです。
含まれるもの
- JVM
- コンパイラ(javac)
- デバッグツール
- 各種開発ツール
開発者は通常JDKをインストールして開発します。
JREとは
JRE(Java Runtime Environment)は実行環境です。
現在はJDKに統合される形になっていますが、
- JDK=開発用
- JRE=実行用
と覚えると理解しやすいでしょう。
4. Servletとは何か
Java単体でWeb開発を行う場合、最も重要になるのがServletです。
Servletの役割
ServletはWebリクエストを処理するJavaプログラムです。
ブラウザ
↓
HTTP Request
↓
Servlet
↓
DB処理
↓
HTML生成
↓
HTTP Response
例えば、
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(
HttpServletRequest req,
HttpServletResponse resp)
throws IOException {
resp.getWriter().println("Hello Java");
}
}
このようなコードだけでもWebページを表示できます。
Spring Bootが登場する前は、多くのJava WebアプリがServletを中心に開発されていました。
5. DB接続の仕組み
Javaは標準でJDBCを提供しています。
JDBCとは
Java Database Connectivityの略です。
データベースとの通信を担当します。
Java
↓
JDBC
↓
Driver
↓
Database
基本的な流れ
- DB接続
- SQL実行
- 結果取得
- 接続終了
例えば、
Connection conn =
DriverManager.getConnection(...);
PreparedStatement stmt =
conn.prepareStatement(...);
ResultSet rs =
stmt.executeQuery();
という流れになります。
Spring Data JPAやMyBatisも、内部的にはこのJDBCを利用しています。
つまりJava単体でもDB操作は十分可能です。
6. 小規模開発ならフレームワーク不要なのか
小規模開発では、フレームワークを使わない選択が合理的な場合があります。
例えば、
- 社内ツール
- バッチ処理
- 学習用システム
- 検証用プロトタイプ
などです。
メリット
- 構成がシンプル
- 学習コストが低い
- 動作が軽量
- 内部構造を理解しやすい
数千行程度のシステムなら、Java単体でも十分管理できます。
7. 大規模開発ではなぜフレームワークが使われるのか
一方で大規模開発になると状況が変わります。
例えば、
- 会員管理
- ECサイト
- 金融システム
- SaaSサービス
などでは大量の機能が必要になります。
必要になる機能
- 認証
- 認可
- ログ管理
- トランザクション管理
- DI
- セキュリティ対策
- API管理
これらをすべて自作するのは現実的ではありません。
Spring Bootなら、
@RestController
や
@Autowired
といった機能を利用するだけで、多くの処理を自動化できます。
大規模開発でフレームワークが主流になった理由はここにあります。
8. Java単体開発のメリット・デメリット
メリット
デメリット
9. 現実的な判断基準
重要なのは、「フレームワークを使うか使わないか」ではなく、「目的に合っているか」です。
フレームワークなしが向いているケース
- Java学習
- 小規模ツール
- バッチ処理
- 検証環境
Spring Bootが向いているケース
- Webサービス
- 業務システム
- API開発
- チーム開発
- 長期運用
現代の実務開発ではSpring Bootを利用するケースが圧倒的に多いですが、Java単体開発を理解しておくことで、フレームワークの仕組みも深く理解できるようになります。
Javaフレームワークを使わない開発は技術的には十分可能です。Javaには標準ライブラリ、JDBC、Servletなどの機能が備わっており、小規模なシステムや学習用途であればJava単体でも実用的なアプリケーションを構築できます。しかし、大規模開発や長期運用を前提とする現場では、生産性や保守性の観点からSpring Bootなどのフレームワークが選ばれることが一般的です。重要なのは「フレームワークを使うべきか」ではなく、「なぜ使うのか、使わないと何が必要になるのか」を理解することです。Javaの基礎を理解した上でフレームワークを活用できれば、より本質的な設計や実装ができるエンジニアへ成長できるでしょう。
ハトネット は、全国の IT 企業間の現場の IT 担当者を結び付け、雇用主が効果的かつ専門的な方法でリソースを最大限に活用し、コストを節約できるよう支援します。
IT 業界で最大 500,000 人の人々を接続します。
パートナーを見つけるコストを節約します。
小さなご要望でも、いつでもオンラインでお申し込みください。
※お問い合わせ:
メール: hello@hatonet.com



