2009-07-01 12 views
4

私たちは、Webアプリケーション内でJavaドメインモデル(DDDを使用して記述)をホストすることを検討しています。理想的には、ユーザーとREST APIの両方をサポートする単一のサイトを持つ、RESTfulなリソースとリクエストをサポートしたいと考えています。誰でもMVCをベースにしてRESTをサポートするJava Webフレームワークをお勧めしますか?

エンドユーザーと指定した機能のRESTful APIの両方で、同じURLを使用することができます(HTTPコンテンツタイプ/ネゴシエーションによって差異が指定されていることが理想的です)。

私はRuby on RailsとAsp.mvcで似たようなアプリを作っていますが、Javaのように何も経験していません。誰もどこから始めるべきか経験やアドバイスを持っていますか? (グーグルが春v3のが答えであるかもしれないことを示唆している、誰もが春3上の任意の考えを持っている?)

+0

ご協力ありがとうございます –

答えて

3

ウェブサービスについては、Jerseyはすばらしく簡単です。 Spring 3はうまくいくように聞こえるが、それはまだ出ていない.Jerseyはフル機能を備えており、SOAPとJSONをすぐにサポートしている。 web.xmlファイルにサーブレットを追加する以外は、すべてアノテーションに基づいています。これにより、Springプラグインよりも構成が簡単になりますが、叫ぶのを避けるために、おそらくそうではないでしょう。

(MVC)Webページ(ユーザーUI)では、私はSpring MVCまたはStrutsを使用します。

+1

JSR-311は、JSR-311の実装であり、またrestletとresteasy – dfa

+0

の完全性のために、JSR-311はRESTに基づいており、implicits経由でMVCをサポートしています – dfa

+0

明らかに半分の答えです。 – stevedbrown

4

Restlets Frameworkhttp://www.restlet.org/

は、私は、使いやすく、広範囲にこのフレームワークを使用し、本当に柔軟で機能の負荷をサポートしてきましたし、ファイルのアップロードからgzipへの応答にもっと期待しています。

このモジュールはSpringサポートも備えていて、とても簡単です。たとえば:

web.xmlの

<servlet> 
     <servlet-name>webapi</servlet-name> 
     <servlet-class> 
      com.noelios.restlet.ext.spring.RestletFrameworkServlet 
     </servlet-class> 
    </servlet> 

春のコンテキスト

<bean id="root" class="org.restlet.ext.spring.SpringRouter"> 
     <property name="attachments"> 
      <map>  
       <entry key="/{variable}/your/restful/call/{variable2}"> 
        <bean class="org.restlet.ext.spring.SpringFinder"> 
         <lookup-method name="createResource" bean="yourBean" /> 
        </bean> 
       </entry> 
      </map> 
    </bean> 

フレームワークも素晴らしいdocumentationfirst steps for newbiesと素晴らしいWIKIを持っています。

このフレームワークは非常に成熟しており、積極的に改善されており、今後の予定はfeaturesです。

jmockを使用してRestlet Resourceエンドポイントを単体テストすることも非常に簡単です。

希望に役立ちます。

+0

私たちはRestletsも使用しており、とてもうまく機能しています。私たちのビューは、Apache Freemarker(Restletはうまく統合されています)を使用して作成され、モデルは一連のデータ転送オブジェクトです。 –

+0

それぞれ独自のものとして、Restletsは、あまりにも面倒なフレームワークであり、既存のフレームワークではうまく動作しませんでした。 – skaffman

4

スプリング3はまだ準備が整っていませんが、現在のマイルストーンビルド(M3)は安定しており、実際に使用するのに十分です。私たちはすでに生産アプリケーションでRESTサポートを使用しています。かなり良いことですが、Spring MVCと非常にうまく統合されています。 JAX-RSに準拠しているわけではありませんが、私はそれを問題として見ません。

2

春は素晴らしいです。私はいくつかのプロジェクトに、そして最近ではportletを開発するためのLiferayポータルサーバーと一緒に使っています。

なぜSpringは良いですか?

  • これは非侵入型フレームワークです。つまり、アプリケーションコードがフレームワーク(IoC - Inversion of Control - 概念を使用)に依存しないことを意味します。Springは、良いフレームワークがすべきことだけを行います。開発をサポートし、それ以上の依存関係を作成しません。
  • 依存性注入:Springでは依存性注入の概念が使用されています。これはコードへの依存を避けるのに最適です。あなたはbeanとbean間の接続/関係を定義するspring xml設定ファイルに依存関係を定義します。これにより、再利用が容易になり、オブジェクト間の強い結合が緩和され、コードの保守性が向上します。
  • これは単なるWebフレームワークだけではありません。Spring MVCは、さまざまなコンテキストで適切な多くの異なるコントローラを提供します。しかし、それは単なるWebフレームワークではありませんが、すべての異なるレイヤー(プレゼンテーション、サービス、データアクセスレイヤー)の開発をサポートしています。たとえば、データアクセス層では、HibernateのようなORMマッパーとうまく統合され、トランザクション管理を提供するためにAspect指向のアプローチが使用されます。
  • ロワーカップリング - >テスト容易化:強力なカップリングを回避することにより、コードのテスト容易性が向上します。異なるレイヤーをテストするための疑似オブジェクトをうまく挿入することができます。

春は実際にベストプラクティスを促進するため、私は肯定的な経験がありました。

1

私はモノレールのMVCユーザー(castleproject.org)ですから、私たちは似たような背景から来ていると思います。 数ヶ月前に、私たちは別のプロジェクト、特にSpringでJavaスタックの作業を開始しました。

私はモノレールで慣れていたものの90%を持っているのが賢明ですが、はるかに柔軟性があります。その欠点は、慣れるまでに多くの構成があることです。 文書が広すぎると、何かを見つける場所がわからないことがあります。 ご希望の場合

関連する問題