web-dev-qa-db-ja.com

大企業がJava EEよりもSpringを好むのはなぜですか?

仕事を探している間、私は金融分野で働く会社でいくつかの就職の面接に出席しました。すべての企業は、開発のメインフレームワークとしてSpringFrameworkを使用しています。そして、ほとんどすべての場所で、「実証済みの安定したテクノロジーが必要であるため、Springを使用しています」と言われました。

理解できないので、SpringがJava EEよりも人気があり「安全」である理由を知りたいです(たとえば、Spring MVCはJSFよりも多く使用されていますが、両方ともほぼ同じ機能を提供します)?

ネイティブJava EE機能は、サードライブラリよりも安定性が低いというのはどうして可能ですか?

20
Alex Kartishev

いくつかの理由:

  1. 春はすでにそこにありました:J2EEは醜いものでした(依存性注入、設定より規約の変換、EJB2からの多くの恐怖、痛い)。 Java EEはSpringからすべての優れたアイデアを「盗んだ」ので、実際には以前のバージョンよりも軽量で簡単です。しかし今では、誰もがすでにSpringを使用しています。これは、多くの製品コード、多くのよくテストされた製品など。結局、英国/米国の人々はなぜ英語のユニットを使用するのですか?(変更するには莫大な費用がかかります)

  2. Springは軽量です:重いJava EEアプリケーションサーバーは必要ありません。TomcatなどのWebコンテナにアプリケーションをデプロイできます。

  3. Springは、Java EE標準(SpringBatchやSpringIntegrationなど)では利用できない機能を多数提供しています。Spring機能はJava EE標準で使用できます。 、しかし、SpringはSpringでうまく機能すると思われるはずですよね?

  4. Springアスペクト指向プログラミングは、Java EEインターセプターよりも柔軟性とパワーがあります。サードパーティのAOPをJava EEで使用できますが、これを使用することもできます-春からの箱から出して。

  5. 春はより速く動きます。 Springは標準ではなく、ベンダーが1つしかないため、頻繁かつ迅速にリリースできます。したがって、JCPの投票、承認などは必要ありません。市場の要件への対応ははるかに高速です。現在の例:クラウド、モバイル、ソーシャルコンピューティング。

皮肉なことに、私は以下から多くのアイデアを「得ました」: http://www.kai-waehner.de/blog/2011/11/21/why-i-will-use-Java-ee-jee- and-not-j2ee-instead-of-spring-in-new-enterprise-Java-projects-in-2012 /

18
rdllopes

仕事を探している間、私は金融分野で働いている会社でいくつかの就職の面接に出席しました。すべての企業は、開発のメインフレームワークとしてSpringFrameworkを使用しています。そして、ほとんどすべての場所で、「実証済みの安定したテクノロジーが必要であるため、Springを使用しています」と言われました。

私は数年前から金融分野で働いているので、私の経験から話すことができます。

私が知っている多くの金融サービスプロバイダーは、2006年から2008年頃にエンタープライズソフトウェアスタックを大幅にアップグレードしました。このとき、EJBに関する幻滅は、いくつかの保守不可能で不十分に記述されたEJBプロジェクトの後でピークに達しました。そのため、システムをアップグレードし、開発者を引き付けるために、SpringとHibernateでコンテンツを再実装し始めました。また、で新しいプロジェクトを開始することは論理的なステップでした。最先端のフレームワーク(当時はSpring、Hibernate、Wicketでした)

しかし、それ以来、金融危機が発生し、それが非常に重要でない限り、多くの金融サービス会社が新しい開発にそれほど多くのお金を投資することを考えていません。ほとんどの人は、Java EE 6または7が起動されたかどうかを気にせず、古い議論のいくつかはもはやうまくいきません。

だから彼らは自分たちが持っているものがより安全より速いなどであると信じたいのです(これは真実かもしれないしそうでないかもしれません)

9
senseiwu

Springを開発者、特に金融会社のような大規模な組織にとって魅力的なものにしていることの1つは、ミドルウェアをより細かく制御できることです。純粋なJava EEを使用すると、開発者は、目標が大きく異なるオペレーショングループに翻弄されます。多くの場合、オペレーションは、機能するものをいじりたくないので、アップグレードするたびにチャンスがあります。物事がうまくいかない場合、アップグレードのメリットを享受しているわけではないため、選択は非常に慎重になります。つまり、開発者は古いバージョンのアプリケーションサーバーで立ち往生し、問題が発生した場合に発生する可能性があります。開発者はベンダーのテクニカルサポートと協力して(問題があることをベンダーに納得させ、指定された条件下で再現する必要があります)、オペレーションと調整して修正を実装する必要があります(もちろん、これは、開発者は、可能な限りこの種のことを最小限に抑えることを好みます。

アプリケーションにSpringを含めることで、開発者は自分のスケジュールでより多くのインフラストラクチャを更新できるようになります。

8
Nathan Hughes