2016-04-28 16 views
13

私はSpring Frameworkを「本当に」理解しようとしています。私は、Spring Core(DI)とSpring MVCを公正に理解しています。Spring Data JPAはJPA実装ですか?

データ部分については、現在Spring Data JPAに焦点を当てています。私が理解しているように、JPAは標準仕様であり、複数の実装があり、Hibernateは有名なものです。

Spring Data JPAを開始したとき、私はSpring Data JPAが独立実装 JPA仕様であるという印象を受けました。私は間違っていることが判明しました。

私が正しく理解している場合、春データJPAは、内部的に他のJPAプロバイダを使用して春、(例休止状態)が提供する抽象化層であるので、一般的に、それはこのようなものです:

Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB

は、私の理解です正しい?もしそうならばSpring Data JPAは間違っていますか?これはJPAプロバイダではなく、抽象レイヤーで、他のレイヤーの上で動作しますJPA provider

私はSpringフレームワークを本当に理解しているのか、それとも複雑なフレームワークなのか分かりません。

誰でも分かりますか?

+3

はい、誤解を招く名前です。はい、JPAプロバイダではありません。はい、それは単に抽象レイヤーです。はい、Spring Data JPAを意味する場合、JPAとして質問にタグを付けることがよくあります。そして、独自の利点を持つJPAの他の多くの実装があります。 –

+1

抽象のレベルが私には非常に高いようであることを除いて、ほぼ正しいと思われます。 [Spring Data JPA - リファレンスドキュメント](http://docs.spring.io/spring-data/jpa/docs/current/reference/html/)。 –

+0

あなたの返信をありがとう。私は本質的に、Springが "既存のフレームワーク"を使用していると信じています。私は正しいですか?これは、Springが有名なフレームワークであることを、単に既存のフレームワークをフードの中で使用しているときに、どのように来るのか不思議に思っています。 – CuriousMind

答えて

26

私はそれがmisnamedだとは思わない(免責事項:私はプロジェクトのリードです)。すべてのSpring Dataプロジェクトには、に基づいてという名前のストアまたはAPIが一覧表示されます。春データJPAは、基本的にはちょうど春データMongoDBのような JPAのための春のデータ、ある春のバッチがバッチ・アプリケーションのための春で同じよ​​うに、 MongoDBのための春のデータで、春の統合は統合プロジェクトのための春です。

はJPAのためのあなたの依存関係グラフを修正行います

Application -> Spring Data JPA -> JPA <- Hibernate -> JDBC -> DataSource 

-> — uses 
<- — implements 

同じMongoDBのために:

Application -> Spring Data MongoDB -> MongoDB Java driver -> MongoDB 

などあなたが春データJPAがあるという印象を得た場所を正確に私はまだ興味があると思いますproject pageでもreference documentationでもJPAの実装はどこにでもあります。実際、特にproject pageは、プロジェクトが提供する機能についてはっきりとしています。また、description of the umbrella projectを調べると、そのモジュールに含まれるすべてのモジュールの基本的なコンテキストを設定しようとする場合があります。

+3

あなたの素敵な説明をお寄せいただきありがとうございます。 「Spring Data JPA」と言えば、JPAの実装かもしれないという私の個人的な解釈でした。この疑念を念頭に置き、間違った想定のものについて知識を築く代わりに、私は疑問/理解の明確化を求めるためにこの質問をすることにしました。どうもありがとう! – CuriousMind

+2

大歓迎です!お力になれて、嬉しいです 。 –

関連する問題