2011-01-12 1 views
11

私はJavaのコアコースを終了し、今ではJava EEに移動しなければなりません。 私はJava EE 6にちょうど行くべきであると私は非常に混乱しています。私は最初から最後まで簡単に教える本があり、すべてがそこにあるからです。Java EE 6を使ってSpringに行ってもいいですか?

または、Springから始める必要がありますか?

私はゼロから始めなければならないので、良い傾向であり、より就職的な傾向に従うからです。

Java EEのみを実行しても、Springに移行する必要がある場合は、高速になるか、またはその逆になります。

また、Hibernateはどこに挟まれていますか?つまり、Java EE 6を使用していても、まだHibernateが必要なのですか、またはJava EE 6では必要ありません。

Springを使用しないと私の不利な点があります。Springは、私のビルドWebアプリケーションをコアJava EE/JSFフレームワークよりも簡単にすることができます。

+0

春は単なるツールです。しばしば、より多くのツールを使用する方法を知っているより多くのツールは、あなたがより良くなります。 – DwB

答えて

15

SpringとJava EEは2つの異なることが示唆されていますが、実際はそうではありません。あなたはSpring MVCのための

  • サーブレットやJSP、春のDAOのため
  • JPAのように多くのJava EEコンポーネントを使用することができます。
  • 春のセキュリティのためのJTA

春は、Java EEスタックに代わる唯一の主要な事はEJBです。 EJBの使用を主張している場合を除き、Springを使用する方法があります。また、SpringはWebサービスなどのための組み込みサポートを提供します。

また、SpringをベースにしているGroovyGrailsもチェックアウトしてください。

最後に、私は、両方の機能が同じであると言うでしょう。それはコード(Java EE)対構成(Spring)です。本当に優先事項です。

+0

あなたの最後の声明では、JEE 6は豊富な設定をサポートしていないと考えています。 JEE6、私は "confureurationのコンベンション"の原則に従うと信じています –

+0

はい、アノテーションで多くの設定ができますが、JEEだけで初期化と "Boilerplate"コードを取得することはできません。 – Manoj

+2

+1 "あなたの質問は、SpringとJEEが2つの異なることを示唆していますが、実際はそうではありません。 – Ralph

7

すべての私のコメントは、一粒の塩で取るべきです。私はバージョン1.0からSpringユーザーでした。私は生産現場でEJBのどのバージョンも使用したことはありません - 1.0から現在まで。

Springは私によく役立ちました:Java EEから私が適用したい技術は、Springで利用できます。 Webサービス、LDAP、メッセージング、およびポートレットモジュールを、永続性、リモート処理、およびWeb MVCの通常の疑いと一緒に使用しました。コードは優れています。私はレイヤリング、コーディングへのコーディング、依存性注入、そしてアスペクト指向プログラミングの利点が私の設計に重点を置いていることがわかりました。

真実はどちらかを選択して動作させることができるということです。この時点では、利点や欠点はほとんどありません。なぜなら、EJB 3はSpringから程遠く、類似しているはずだからです。私はEJB3を使用していないので、個人的な経験から言いません。

私の雇用主やクライアントの誰もEJB3を求めていません。私の市場の人は、Springや.NETを使ってWebサービスHTTP経由。

EJBでは、ネットワークプロトコルとしてRMIまたはCORBAを使用する必要があります。私は、HTTPベースのプロトコル(RPC-XML、SOAP、RESTなど)が勝利していると信じています。

未来を予言する人は誰もいないので、就職先のアドバイスは無駄です。あなたの地元の市場状況は私と同じではないかもしれません。あなたはベットをヘッジして両方を学ぶことができます。どちらを選んでも、EJBやSpringのような新しいものを将来学ばなければならないことはほとんど間違いありません。だから1つを選択し、変更する準備ができている。

+2

+1 "私の雇用主やクライアントの誰もEJB 3を訴えていない" < - 同意! – Casey

0

スプリングとJava EE 6はある意味では類似しています。彼らは並行して進みます。私はあなたがJava EE 6を学び、(必要であれば/必要であれば)Springを学ぶ方が良いと思います。

Java EEには、さまざまなデータベース照会の目的で非常にうまく機能するJava永続性があります。

1

私はJava EE/Webプログラミングの経験から、標準のJavaだけを使って、Java EE/Webの仕組みがどのように働いているかをはっきりと理解することなく、いくつかのフレームワークに挑戦しました。 Springのようなフレームワークを使用している場合、Java EEのすべてが関連するわけではありませんが、基礎をなす技術のいくつかを十分に把握しておくことをお勧めします。船外に出る必要はありませんが、いくつかの基本を理解することは良い考えです。

ライブラリ(Springなど)で正しく設定されていないものがあると、ユーザーの特定の知識レベルを前提としていることがあります。いくつかの基本的な問題で苦労した後、私はしばらく時間をかけて基礎に戻った。その後、私はフレームワークをよりよく扱うことができました。

私はただEJBルートを忘れてしまいます。

0

まず、Java EEは単一の仕様ではなく、一連の仕様であることをご理解ください。 Springはフレームワークですが。 Springには、EJBsを含む多くのJava EE仕様との統合があります。 仕様を使用する考えは、この仕様の異なる実装間でアプリケーションを移植可能にすることです。残念ながら、これは実生活ではうまく機能しません。
今、Hibernateに関する。再び:それはフレームワークです。 Java EEにはJPAという仕様が含まれています。 HibernateはJPAを実装します。あなたは他の実装を見つけるかもしれません。したがって、別の実装を使用している場合、Hibernateは必要ありません。

ここで、最終結果を知りたいと思うかもしれません。私は本当にそれを持っていません。あなたがJavaを勉強しているなら、あなたが知っているほど、より良いものになるでしょう。
新しいWebアプリケーションを開始するテクノロジーを探しているなら、JettyやTomcat +のようなサーブレットコンテナ(サーブレットコンテナはJava EEの一部です)を使用して、永続性のためにJPA(Hibernate実装)を使用する方が良いと思います。 。

0

新しいプロジェクトにはSpringと一緒に行く理由はありません。しかし、そこにまだそれを使用する多くのアプリケーションがあります。あなたは間違いなくJava EESpringの前に学ぶべきです。開発を容易にするためにSpringが使用されています。この時点では、Java EEは使いやすく、Springの依存関係も取り除くことができます。