昔のJavaEEアプリとJavaEE6アプリの個人的な比較イメージ。
- 昔のJavaEEアプリ
"継承"を使いこなすのがオブジェクト指向の神髄といった、今から思えば妙な流行があったのせいか、EJB2.1やStrutsなど"継承"を中心にしたモデルやフレームワークが人気を誇った。
しかし、"継承"を中心としたモデルは以下の理由で破綻。
-
- 設計が難しい
- 実装も難しい
- 修正も難しい
- 使いこなしや教育も難しい("継承"を理解せずに、「おまじないだと思って、このクラスを継承する」と言うプログラマが激増した)
- 継承関係の正しさを確認出来るテストケースを書きにくいのでテスト駆動で開発しにくい。
これらの反省に基づいてDIコンテナーを使った"委譲"を中心にしたモデルやフレームワークが開発され、次の理由で大いに人気を博す。
これらの利点を標準として、まとめたのがJavaEE6。
- JavaEE6アプリ
JavaEE6アプリを構成するビジネスロジックを作成し呼び出すために、特定のクラスを継承したり使用する必要は無い。
使用したいクラスをフィールドに宣言すれば、CDIがそのクラスのインスタンスをフィールドに自動で設定する。
JavaEE6はその生産性の高さでStruts系を殲滅↓
ニュース - 「Java EE 7はクラウド環境に向いた機能を追加」、日本オラクルが説明:ITpro
日本オラクルが開発フレームワークの利用状況について調査した結果では、日本ではMVCフレームワークのApache Strutsが人気で、Java開発者の33%が使っているという(Java EEは24%、Spring Frameworkは23%)。ところが世界では、Strutsを使っているユーザーは、「Eclipse Community Survey 2012」によると、Struts 1.xで1.3%、2.xで1.3%と低い。「外部フレームワークからJava EEへの回帰がトレンドになっている」という。