22

バックグラウンド

GWT、Java、および EclipseLink を使用して Web アプリケーションを開発中です。これらの選択のそれぞれは、このプログラムを実装するために私が行った選択です。GWT は、Spring のようなものと正確に比較して、それが何であるかについてしっかりと把握されていない唯一の選択肢です。現在、私は GWT ウィジェットを使用してクライアントを実装し、GWT RequestFactory を使用して EclipseLink からのエンティティーのサーバー/クライアント通信を実装しています。

ビュー

したがって、私は GWT を主に、サーバーとクライアントの通信のための単純なフレームワークを備えたウィジェットのライブラリーと見なしています。これは、サーバーとクライアントの通信を制御するためのはるかに高度で複雑なフレームワークを備えたウィジェットのライブラリである Spring の見方とほとんど同じですが、GWT ほど便利に AJAX を実装していない可能性があります。

これらを念頭に置いて、私は GWT を Spring を理解し、最終的には Spring で作業するための足がかりと見なしています。ただし、このトピックについて再度 Google で調べてみると、Spring とは何か、GWT にとってそれが何を意味するかという当初の概念に反しているように見える、このトピックやあのトピックのようないくつのトピックに出くわしました。

質問

  1. GWT と Spring の見解について誤解がありますか? もしそうなら、それについてのいくつかの簡単な指針をいただければ幸いです。
  2. Spring Framework の GWT ウィジェットに対応するものは何ですか?
  3. Spring Framework の GWT RequestFactory に対応するものは何ですか?
4

3 に答える 3

27

アプリケーションでどのように使用するかによって異なりGWTます。

GWT単一ホスト ページの Web アプリケーションに最適です。
つまり、すべてのフロー同期とビジネス ロジックは、クライアント側で を使用して実行されますGWT
これはGWT本当に輝く場所です (詳細については、こちらを参照してください)。

ただし、この道をたどると、基本的に 2 つの異なるアプリケーションになります。GWTたとえば、Spring を使用してフロントエンドを開発し、バックエンドを使用します。バックエンド (Spring または使用するもの) は、GWT フロントエンドに表示するデータを提供する「データ ストレージ」としてのみ機能します。したがって、おそらくどの機能も使用しないでしょうSpring MVC's

もちろんSpring MVC、Web 2.0 っぽい機能をサイトに追加するためだけに GWT を使用することもできますが、その場合は、jQuery、Closure、またはその他の JavaScript フレームワークを使用することをお勧めします。

あなたの質問に:

GWT と Spring の見解について誤解がありますか? もしそうなら、それについてのいくつかの簡単な指針をいただければ幸いです。

意図したとおりに使用する場合GWT(単一ホスト ページの Web アプリケーション)、Spring の MVC 部分は使用しません。承認認証ORM 、および Spring フレームワークの他の多くのコンポーネントを引き続き使用できますが、GWT がすべてのビューを処理します。
Spring は多かれ少なかれ、GWT フロントエンド アプリのデータ ストレージとしてのみ機能します。RequestFactoryこれは、通信プロトコル ( 、RESTRPCなど) を介して接続された 2 つの別個の別個のアプリを持つようなものです。

Spring Framework の GWT ウィジェットに対応するものは何ですか?

Spring Framework には、GWT ウィジェットに相当するものはありません (一部の JSF を拡張するものかもしれません)。Spring はすべてサーバー側に関するものなので、そこにあるすべてのビューはサーバー側で作成されます。一方、GWT はすべてクライアント側に関するものです。

Spring Framework の GWT RequestFactory に対応するものは何ですか

RequestFactoryフロントエンド アプリ ( GWT ) とバックエンド アプリ ( Spring )の間の通信プロトコルです。ビューは、既にデータを持っているサーバー側で生成されるため、使用するSpring MVC場合、通信プロトコルは必要ありません。

于 2012-12-05T09:03:30.927 に答える
3

GWT はウィジェット ライブラリではなく、サーバー側ではなくクライアントで実行される完全な Web アプリケーションを生成するための完全なフレームワークです。基本的な違いは、Spring (MVC パターン) はサーバー中心であるため、ddbb に接続し、ビジネス ロジックを実行し、クライアントに送信するビューを生成することです。これは、GWT (MVP パターン) がブラウザーでプレゼンターを実行して、サーバーに接続して結果またはオブジェクトを取得するだけです (リモート メソッド)。

GWT アプリによっては、サーバー側のロジックや、ddbb、spring などの他の要素が必要になる場合があると述べました。

GWT またはその他のフレームワークをいつ選択するかについての決定は、ブラウザーで実行されるリッチな (デスクトップのような) アプリケーションが必要かどうかによって異なります。

論理的には、どのレベルの複雑さでも GWT と spring を混在させることができますが、論理的な方法は、Spring にデータ モデルとそのビジネス ロジックの責任を与え、GWT が残りを行うことです。

この組み合わせを学ぶ最善の方法は、Spring-rooで生成された小さなプロジェクトを調べることです。maven、spring、gwt、mvp、rf のすべてのセットを含むプロジェクト全体を作成できます。roo 1.2.2 をインストールして、roo コンソールで次の一連のコマンドを実行するだけです。

project --topLevelPackage com.project.contacts
persistence setup --provider ECLIPSELINK --database HYPERSONIC_PERSISTENT
database properties set --key database.url --value jdbc:hsqldb:/var/tmp/contacts.db
entity jpa --class com.project.contacts.domain.Contact --testAutomatically
field string name --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact
field string surname --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact
field string phone --notNull --sizeMin 1 --sizeMax 15 --class ~.domain.Contact
web gwt setup
web gwt all --proxyPackage ~.client.proxy --requestPackage ~.client.request
quit

次に実行

mvn gwt:run

roo で見られる主な問題は、モデルを変更するときに 'aspectj' を使用してマネージド クラスを更新することですが、プロジェクトがセットアップされたら、Eclipse を使用して roo の依存関係と aspectj ファイルを削除できます。

于 2012-12-05T09:05:49.433 に答える