web-dev-qa-db-ja.com

Webフレームワーク:PlayとSpring MVCの違いは何ですか?

Play Framework は次の簡単な概要を提供しますが、Groovyテンプレートエンジン(必要に応じてSpring MVCで取得できます)を除き、Springはすべて同じ機能などを提供しているようです。 。

  • バグを修正してリロードを押してください! Javaファイルを編集し、保存してブラウザを更新し、すぐに結果を確認してください!サーバーをコンパイル、デプロイ、または再起動する必要はありません。 Springはこれを行いますが、これは迷惑になります。

  • ステートレスモデル Playは実際の「何も共有しない」システムです。 RESTに対応しており、複数のサーバーで同じアプリケーションの複数のインスタンスを実行することで簡単に拡張できます。 典型的なSpringアプリケーションにはステートレスなアプリケーション層があります。望むのでなければ純粋にRESTfulではありませんが、Springは「RESTに対応」しています。

  • 効率的なテンプレートシステム式言語としてのGroovyに基づくクリーンなテンプレートシステム。テンプレートの継承、インクルード、タグを提供します。 SpringはJavaを使用しますが、Groovyもオプションです

  • エラーをすばやく解決するエラーが発生すると、playはソースコードと問題を含む正確な行を表示します。テンプレートでも。 Springもこれを行います。

  • クールなWebアプリケーションを作成するために必要なもの Hibernate、OpenID、Memcached ...およびプラグインシステムとの統合を提供します。 Springはあらゆるものと統合されます。

  • Pure Java Javaでコードを作成し、Javaライブラリを使用して、好みのIDEで開発します。 Eclipseまたはnetbeansとうまく統合します。 Springは純粋なJavaも同様です。

  • Really fast高速で起動し、高速で実行されます! 主観的ですが、Springはかなり速いです。

それでは、Playフレームワークの実際の動作はSpring MVCとはどう違うのでしょうか?
一言で言えば、SpringはPlayフレームワークで何ができますか(そしてその逆)。

48
Play vs. Spring

どちらの側の「純粋なJava」の主張も非常に面白いと思います。

もちろん、プロジェクトがJava以外をまったく使用しないのは非現実的です。それでも、「純粋なJava」ラベルにはいくつかの標準が必要です。どちらのフレームワークも適格だとは思いません。

Playは実際にJava言語のセマンティクスを変更します。明確に指定されている限りは問題ありません。バイトコード操作を行う場合は、正直に言ってください。通常はAOP-ishによって行われます。トリック、インスタンスメソッドは追加の動作で装飾され、それらのマニフェストの動作(コードで記述されたもの)は通常保持されます。 。

Playでは、同じクラス内の別の静的メソッドを呼び出す1つの静的メソッドが魔法のような効果を持つことがあり、その動作はメソッド呼び出しのようなものではありません。 Javaプログラマーが静的メソッド呼び出しが何であるかを確信できない場合、それは大きな問題です。

Spring-まあ、彼らのJava部分はまだ純粋ですJava大丈夫です。しかし、JavaのPOVから)非常に魔法的であり、重いフレームワークに大きく依存していますSpringを「純粋なJava」と呼ぶのは、肉を見落とすとバーガーを「純粋な野菜」と呼ぶようなものです。肉は最高の部分です!

10
irreputable