EJB 3の代わりにSpring + Hibernateが優先されますか?


12

私の考えでは、新しいJEEプロジェクトが開始されると(これらの技術が適用される場合)、人々はEJB 3ではなくSpring + Hibernateの組み合わせを使用することを好みます。

若手プログラマーにもアドバイスされているようです、EJBの代わりにそのために行くことているようです。

これは個人的な好みですか、それとも適切な理由がありますか?(たとえば、EJBまたは技術の肥大化に対するパフォーマンスの理由または学習曲線に対する不信を引き起こした以前のEJBバージョンによって作成された個人的な傷跡)?


2
私はほとんど...それは、EJBが、今、私は場合は、いくつかのケースでは、EJBのために行うことができると思う...春+ 1つの時点で休止状態としては良いようではなかったので、オーバー歴史キャリーだと思う
リグ

回答:


11

EJB 3+フレームワークは、アノテーションが設定された永続性フレームワーク、およびアノテーションが設定された依存性注入を可能にするCDIに対する回答としてJPAとともに提供されたため、実際にはかなり優れています。また、その溶接の上に追加します。一方、Springは注釈による設定でゲームに追いついています。

とはいえ、EJB1および2に対する歴史的なバックラックは軽視すべきではありません。エンタープライズアプリケーションの作成に関する問題を解決するだけでなく、見事に失敗しました。企業やWebアプリケーションの開発者が直面している真の問題を把握し、実際に必要なソリューションを提供することは、設計者の完全な失敗でした。

それに加えて、現時点でのJavaの現在の方向性に深刻な混乱と不安定性があり、Oracleの古いSun JVMの現在のスチュワードと所有者に対する信頼が欠如しているという不信感を加えてください。多くの人々は、OracleがJavaを改善して方向性を導くとは信じていません。また、Apache Software Foundationがタオルを投げ入れるだけの恐れもあります。ますます多くの人々がJavaの将来のためにOpenJDKを探していますが、それはエンタープライズ採用のために必要な場所ではありません。

エンタープライズアプリケーションが、Javaが歴史上世界で1番目のプログラミング言語である主な理由であるため、このすべてを死の匂いだと考える人もいます。これが、Microsoftが.NETテクノロジを使用してJavaに対して大きな地位を獲得している理由です。

非エンタープライズベースのJavaアプリケーション開発者は、ソリューションの構築を支援するためにOpenJDKおよび他のオープンソースフレームワークにますます向きを変えており、一部の企業は振り返りません。技術的にはJEEは、同等のSpringアプリケーションとつま先までやり遂げることができますが、JEEを正当性の最前線に戻すのは遅すぎると言えます。


よく要約され、話されています。これは、EJBについての私の見解も共有しています。
鬼軍

4

EJBには多​​くの荷物があります。その手荷物の一部は、それが間違った聴衆に向けられたという事実から来ています。他の部分は、最初の2つのバージョンが完全にくだらないことでした。

元のEJBバージョンを見ると、EJB開発者がEJB準拠のコンテナ内で使用できるパッケージ化されたソリューションを作成できるように設計されていました。社内ショップでは、このレベルの抽象化は不要でした。これは、サードパーティのEJBコンポーネントベンダーの繁栄する市場を作るための完璧なソリューションでした。しかし、コンテナベンダーはマーケティングに熱心であり、日々の開発の実行可能なソリューションとして製品を大量に販売していました。これは、すべてのアプリケーションコードをCOM +コンポーネントとしてビルドするのと同じです。

元のJ2EE仕様の背景については、関係するベンダーのほとんどがCORBAサーバーを持っていて、今後これらの製品を活用したいと考えました。EJB仕様は、IIOPプロトコル(実際にはIIOP上の薄い層であるJava RMI)を介して構築されました。CORBAはその複雑さのためにすでに拒否されており、EJBはCORBAに変装しただけであったため、CORBAが抱えていた多くの問題をもたらしました。実際、EJBの抽象化により、純粋なCORBA実装よりも作業が難しくなりました。

ゴムが舗装に当たると、人々はEJBのパフォーマンスがひどいことに気付きました。すべての呼び出しがリモート呼び出しであり、最初からアプリケーションを正しく起動して実行することさえ難しいため、人々はすぐに代替手段を探しました。JSPコンテナで実行されるHibernateとSpringがソリューションになりました。

EJB 3はこのアプローチを「採用」しました。しかし、それはまだ多くの利点を提供しない一般的な妥協案です。サードパーティのEJBコンポーネント市場はまだ存在しないため、EJBコンテナを使用してソリューションを構築しても意味がありません。

長い話は短い。EJB 3ですが、広大な最初の2回の反復を超える改善、それはまだコストを上回るのに十分な利益を提供していません。


This would be the equivalent of building all of your application code as COM+ components. ...どのように恐ろしい
maple_shaft

3
まさに;)2001年にドットコムと仕事をして、PERLアプリケーション(それはうまく機能していました)をJ2EEに移植することを決めました。この取り組みの「アーキテクト」には、1か月のJ2EEトレーニングの集合がありました(以前にJavaのラインを作成したことはありませんでした)。私のお気に入りの引用「私はPERLが本当に得意です。Javaを習得するのは、新しい構文を学ぶだけです。」その日、履歴書をMonsterに提出しました。
マイケルブラウン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.