2015-10-29 8 views
8

私は、次の質問それはかなり私のニーズに応えていない春データ残りは

What are the advantages of using Spring Data REST over Spring Data JPA?

を見てきました。 私のDBはMYSQL上にあり、私はSpring-Data-JPA実装を選択しました。単純なSpring-Data-JPAで見つけられない、RESTが私に与えることができる追加の利点は何ですか? 明日は、ビジネスとデータベースモジュールをキャッシュに実装することにします。その場合、より少ないコードを書く必要がありますか? 簡単に設定できるのはどれですか?どのような柔軟性とどのようになるだろうか?

また、新しいアプリケーションでRESTとJPAの両方を使用している場合、どのような設計原則を打ち破ることができますか?

私はアーキテクチャの観点からの答えを楽しみにしています。前もって感謝します。

答えて

17

基本的にあなたの質問は完全にポイントではないと思います。私は、あなたが春のプロジェクトのジャングルであなたのやり方を完全に見つけたわけではないと思うので、ここで少しオリエンテーションをしようとします。

Spring-data-jpaは、JPAを使用してデータにアクセスする春の方法です。 spring-data-jpaの上にspring-data-restを使用すると、リポジトリとエンティティの上にコードを持たないREST-APIレイヤを作成できます。

春のデータ休憩があなたにできることはすごく素晴らしいです。これは、JPAレイヤーの上にREST APIを作成する最も速い方法です。また、高度にカスタマイズ可能です。しかし、私はそれには限界があると思う。最も重要な弱点は、エンティティとAPIの密接な結合です。通常、これらのレイヤー間のデカップリングを少ししたいと思っています。しかし、それはソフトウェアの大きな部分です。あなたが高速で、最小限の量のコードを書く必要がある場合は、春のデータ休憩に行く。

spring-data-restの代わりにspring MVCを使用して、独自にREST APIを作成しています。 Spring-data-jpaは引き続きデータアクセス層の実装に使用されます。 Spring MVCは非常に強力で、ボンネットの下で春のデータを休めることによって使用されます。これにより、RESTレイヤーを完全に制御できます。

spring HATEOASも言いたいことですが、それはspring mvcの上にある単なるモジュールであり、ハイパーメディア駆動のREST APIを作成するツールを提供しています。Richardson Maturity Modelの成熟度3に行くことができます内部でバネデータレストによっても使用されます。

+0

ありがとうございましたMathias +1は成熟度モデルですが、これは決して新しいものではありませんでした。 しかし、どのようにしっかりと結合されているか、そしてSpring Data JPAはどうやってより疎結合しているのか、もう少し詳しく説明しています。あなたができる場合、具体的な例を探していました... –

+0

ここには非常に良いサンプルアプリケーションhttps://github.com/olivergierke/spring-restbucksがあります。これにはspring-data-restの例が含まれていますが、カスタムコントローラも含まれています。 –

関連する問題