時間の経過とともに、JavaEEは確かに機能の面で追いつきました。
しかし、私が何度も遭遇した1つの要因は、私が長い間Springを好んできた主な理由です。JavaEEサーバーと実装はバグが多く、開発者にとって使いにくいものです。これは暴言のように聞こえるかもしれませんが、JavaEE 6の最高のものでさえ-CDI(Weld impl)には不可解な例外メッセージがあり、開発者に苦労を与えています(ここを参照)。アプリケーションサーバーは言うまでもありません-本当に醜いバグでいっぱいです(JBoss 5で3時間作業して約5つのバグを見つけることができました)
私にとって春をより魅力的にするもう1つの点は、短い時間枠で機能を追加できることです。コメントで述べたように、統合キャッシュの抽象化と会話処理は、前のバージョンから数か月後の次の春のリリースで追加される予定です。JavaEEでは、多くの時間を待たなければなりません(少なくとも標準ソリューションの場合)
しかし、JavaEEではそれほど黒くはありません。問題の多くには回避策があるか、タイムリーに修正されます。そして最終的には、それは個人的な好みの問題です。
ちなみに、Springのポートフォリオは、その間に多くの特定の機能/機能セットを追加するサイドプロジェクトでいっぱいでした。それらの多くはJavaEEでも使用できますが、Springに完全に適合するように設計されていることに注意してください。
- 春のセキュリティ-宣言型セキュリティ
- springroo-迅速なブートストラッププロジェクトのためのツール
- 春のウェブフロー-ウィザードのような旅を処理するためのMVC上のフレームワーク
- 春のデータ-NoSQLストアへのアクセスを統合することを目的としたまだ新しい
- 春のモバイル-モバイルプラットフォームに春をもたらす
- 春のソーシャル-ソーシャルネットワークと対話するためのツールのセット
これは単なる追加機能であり、JavaEEにも追加機能がありますが、CDIが見逃しているものを提供することを特に目的としているSeamを除けば、(写真を見る限り)より汎用的です。
結論として非常に重要な注意事項が1つあります。springとJavaEEの比較は正しくありません。SpringをCDI+EJB+Applicationサーバーと比較したいと思います。JavaEEの残りの部分は、Springと一緒に使用できますが、多くの場合、使用されています。JAX-WS、JAXB、JSFでさえ、春にうまく適合し、よく使用されます。