0

Web サイトのバックエンド インフラストラクチャの作成に取り組んでいます。明らかに、バックエンド インフラストラクチャはフロントエンドにとらわれない必要があります。それは、Web サイト、モバイル サイト、モバイル アプリ、その他のサービスなど、何でもかまいません。

RESTful Web サービスとして作成する予定であり、依存性注入、トランザクション管理、および永続化フレームワークも使用したいと考えています。ここでの制限は、Apache Tomcat Web サーバーで作業するため、EJB を使用できないことです (JBoss または他のアプリケーション サーバーを使用できません)。

私の最初の考えは、Spring フレームワークを使用することです。これは、しっかりしていて、十分にサポートされており、必要なものすべてを簡単にカバーできます。私が少し躊躇しているのは、単に View のない REST エンドポイントが必要なためです。一方、Spring を使用する場合は、Spring MVC フレームワークを経由することになります。View 部分なしで Spring MVC を使用するのは普通ですか?

私の選択は理にかなっていますか、それとも考慮すべき他のフレームワークはありますか? RESTフレームワークの別の代替手段としてJAX-RSを調べましたが、依存性注入/トランザクション管理/永続化フレームワークを取得できず、それらを取得するには他のフレームワークを使用する必要がありました。

また、私の問題も解決できるように聞こえるプロジェクトTomcatEEがあることに気付きました。.

あなたの考えは大歓迎です。前もって感謝します!

4

4 に答える 4

1

はい、Spring3MVCは優れたフレームワークです。RESTfulWebサービスもサポートするアプリケーションを作成しています。主な利点-コントローラークラスからの戻り値が自動的にJSONオブジェクトに変換されます。ビューを使用するかどうか-それはあなた次第です、ビューなしですべてが正常に動作します

于 2013-01-22T14:21:45.290 に答える
1

Tomcat は EJB がないという意味ではありません。Tomcat 7 では、Jave EE 6 が提供され、EJB および CDI テクノロジを使用できます。現在、次のテクノロジ スタックを使用するソフトウェアに取り組んでいます。

  • JAX-RS RESTful フロントエンド。サービス呼び出しを
  • @Inject CDI アノテーションを使用して RESTful クラスに注入されるサービス EJB

Spring を使用しないことには、次の利点があります。

  • 3pp の依存関係が 1 つ減り、必要なテクノロジーが 1 つ減ります。明らかに利点ではありません。
  • 標準の Java EE テクノロジに固執することで、アプリを (多かれ少なかれ) 移植可能にします。

それどころか、Spring は非常に広く普及しており、十分に文書化されているため、Spring を使用するのは魅力的だと思います。Spring の移植性も問題ありません。Spring よりも、さまざまな EE ベンダー間でさまざまな CDI バグや誤実装 (?) に問題がありました。Spring が MVC のやり方を強制することはないと思います。部分的に使用することも、必要に応じて混合することもできます。ボンネットの下にあるものを知っていれば、非常に柔軟な方法で Spring を使用できます。

注意: 認証について少し考えてみましょう。RESTful は BASIC 認証を意味しますが、Web アプリケーションは通常、派手なログイン ページを必要とし、BASIC 認証ポップアップを抑制するのは困難です。この問題を解決するために SSO を使用しました。1 つの Web アプリケーションには FORM 認証と洗練されたログイン画面があり、他のクライアントには RESTful サービスの BASIC 認証を使用しました。最初のアプリでの SSO によるログインは、RESTful 呼び出しでも有効でした。

于 2013-01-22T14:39:55.847 に答える
0

ドメイン クラスにバインドするために、Jersey を JAXB と組み合わせて使用​​します。優れたチュートリアルは次の場所にあります。

http://www.vogella.com/articles/REST/article.html

JAXBは遅延ロードされたモデルを処理できないため、hibernate / jpaを使用する場合は注意してください(その場合、アダプタークラスを作成する必要があります)

于 2013-01-22T14:12:27.650 に答える
0

同じようにSpring Rest Dataを使用しています。サーバーはJSONでのみ応答し、クライアントがデータに対して何をするかは気にしません。MVC の使用についても疑問に思っていましたが、問題ありません。

遅延読み込み: 私の観点からは、その方法は 2 つしかありません。

  1. データベースから熱心にすべてをロードし、クライアントに送信します
  2. Spring Rest Data によって行われるように、参照をリンクとしてシリアル化します。クライアントはどちらをロードするかを決定できる/決定する必要があります。

Spring REST Data を使用したライブ デモ アプリケーションが demo.appdriver.com にあります。API にはhttp://appdriver.prefabware.cloudbees.net/api/でアクセスできます。

于 2014-05-06T13:20:51.180 に答える