2009-03-09 5 views
13

エンタープライズWebアプリケーションのSpringとJbossのメリットとデメリットは何ですか?Spring対Jboss

答えて

12

すでに述べたように、私はその点を改めて説明します。 JBossはアプリケーションサーバーです。一部のJavaアプリケーションサーバのWebsphere

  • が含ま
  • Glassfishの
  • のJBoss

春のフレームワークです。かなり大きなフレームワークですが、私の主な機能の1つはMVCです。 MVCは、ModelとViewをContollerから分離するデザインパターンです。モデルはデータの表現です。これは、データベースやXMLファイルのようなものによって裏付けられます。ビューは、モデルを表示するために使用されるビューです。これは、WebフロントエンドまたはWindowsアプリケーションのいずれかになります。ユーザーはビューと対話します。ユーザーは、モデルを更新する願望を表現します。これがコントローラーの登場です。コントローラーを使用してモデルを更新するように指示します。ビューはモデルに基づいているため、ビューも更新されます。これは簡素化されていますが、一言で言えば、あなたが見ることができる他のMVCフレームワークはStrutsです。

私は、以前の春には、このような

  • セキュリティフレームワーク
  • として提供しています他の機能コントロール
  • 依存性注入
3

JBossはコンテナです。スプリングはコンテナ内で実行されるものです。あなたはリンゴとオレンジを比較しています。ここで

+3

多分、彼は依存性注入機能を意味します。 – cherouvim

+6

リンゴとオレンジを比較している人がいるときは、よりジューシーなもの、食べたものを食べることができるもの、それぞれからジュースを作り出す方法などを説明することから始めます。 – Ekevoo

+0

行がぼやけているので、初心者が選択するスタックを選択するのが難しくなる – xenoterracide

5

は私の意見です:

春には、JBossが不良であることのすべてを表しているのに対し、すべてのことが、Java EEので良いです表します。

まあ...そんなにうまく行きませんでした(そうではないと思いました)。私は、アプリケーションをホストするためにJBossを決して選択しないと言っているだけです。それはちょうど非常にclunkyとヘビー級であり、特に何もしません。私は春が好きです。なぜなら、モノリシックで落ち着きが少ないからです。 Springはアプリケーションコンテナではありませんが、アプリケーションをホストするために必要なインフラストラクチャの大部分を構築するために使用できます。コンテナにプラグインするだけで、残りの部分はSpringが処理する必要があります。

+0

この行を愛している "春はすべてJEEでうまいですが、JBossはすべて悪いことを表しています。 –

45

の反転がある。これは良い質問です。言ったようにこれはリンゴとオレンジの比較であり、つまりJbossはコンテナであり、Springは単なるStrutsのようなフレームワークであると誤って述べています。しかし、これがちょっと混乱しているのは、JBossとSpringの両方が元々の単純な起源からかなり拡張しており、互いに近づいているからです。 JBossを理解する簡単な方法の1つは、その名前がオリジナルの「EJBoss」であり、オープンソースのJ2EEアプリケーション・サーバーであることを前提としていたため、EJBコンテナとしての機能を持つTomcatよりも利点があり、WebSphereおよびその他の独自のアプリケーションサーバーです。

そしてSpringはIoCフレームワーク(現在はDependency Injectionと呼ばれていました)です。これは基本的にオブジェクトのファクトリであり、より疎結合の設計に従うことができます。

しかし、その人気のために、両方の製品が拡張されました。例えば、JBossが、今では自分のIoCコンテナのしている:JBossの マイクロコンテナ: JBoss IoC

JBossはと呼ばれる独自の軽量IoCコンテナを提供します。 JBoss Microcontainerは、Springとコンセプトが似ている軽量の逆 制御/依存性注入コンテナ、 Pico Container、およびPlexusです。

そして、Springは完全にうまく動作し、(ほとんど)JBossと共存していますが、本格的なEJBコンテナは不要です。これはTomcatで簡単に実行できます。 Springの設計目標全体は、軽量設計、POJOの使用、およびEJBに非常に反する重いコンテナの要件の欠如に基づいており、したがってJBossとは異なると思われます。

Rod Johnsonは、あなたは、JBossで春を実行することができない理由はありませんことを指摘している:

春は、任意のアプリケーション・サーバ(または アプリケーションサーバ外)で動作するように設計されています。 Springを使用しても、サーバが提供しなければならないかもしれないものが無視されるわけではありません。 件の多くのケースで大きな選択肢を提供しています。

したがって、2つのシステムのどの部分を使用するか、またどのJava標準を遵守するかを決める必要があります。この記事では、標準にどれだけうまく適合しているかをカバーするJBoss and Springについて、あなたが選択した技術に応じて、これはかなり争いのような戦いのように見えます。次に来る何

は、JBossや春のソースツールへの統合にXMLからすべてを超える 戦いに最終的に 仮想化、自体....その健全な競争、

[スニップとして、緊張緩和何でもあり]

だけ時間が教えてくれますが、私はこの戦いが唯一のもの 開発者のためのより良い、むしろネットより多くの選択肢、およびJava周りより イノベーションを作ることを考えて、それは、JBossのための厳しいテストであってもよいが、1 ます彼らは扱うことができる実行が完璧でない場合は、 Spring Sourceが知覚された利益と実際の利点との間の楔を動かすために探してください JEE 6 ...より早く、むしろ、アプリケーションの可搬性が であることが証明されなければなりません、 、それは起きていない、さまざまなJava標準規格への準拠で、より最新の一見のため

は、request for feedback on Spring 5見てとります。また、春の市場のために、春には、さまざまなEEサー​​バーをサポートし確保することが重要である、という事実を強調しながら、あなたは、春の設計者が直面する制約のアイデアを得ることができます。

私たちはそっとEEをアップグレードしますベースラインも同様です。

我々は間違いなく私たちの存在からサーブレット3.0+(に上げます: と我々は生産に 環境を、企業の採用レベルを考慮する必要があり- さて、これは我々が効果的にここに個々の要件を持っているので 少しトリッキーですサーブレット2.5 ランタイム互換性)、ただし、Spring 5 アプリケーションをEE 6ベースラインサーバで実行するようにしてください。 Java EE 7での市場状況が であり、まだサーブレット3.0 APIに基づいている の多数のサーバーを前提として、これがどうして避けられないのかについては前の ブログ記事を参照してください。 [snip] 2002年のJMS 1.1 APIのサポートを維持しなければならないのはちょっと残念です JPA 2.1+とBean Validation 1.1+を上げるのが好きですが、私たちの手は が結ばれているようです:TomEE 1.7 JBoss EAP 6.4には厳しいJPA 2.0とBean Validation 1.0 APIがあり、WebLogic 12.1.3にはJPA 2.1がありますが、 Bean Validation 1.1 APIはありません(関連していますが)。

+0

参照されている記事は古いリンクです – xenoterracide

+0

リンクは現在機能しています。彼らが古くなった場合のためにリンクからテキストに追加されました。 – michaelok

0

java6とCDI(あなたの意見を見てください)あなたの意見は間違っているので、 春はもう唯一ではありません。 15年前にEJB2(さらにはEJB3)でも でしたが、今日のCDIコードはwebsphere、weblogic、jboss、glassfishな​​どで管理されています。

0

アプリケーションは、モノリシック(1つのJVMプロセスがすべてを行う)として実行されます。そこでは、垂直/水平クラスタをスケールする必要があります。スプリングの使用を調整してマイクロサービスアーキテクチャを実装する必要があります。

関連する問題