2017-06-26 223 views
3

這可能不是最好的問題,但我注意到有2個Spring JPA用於Spring引導。他們有什麼不同。目前我正在嘗試與休眠一起設置SpringBoot 1.5.3項目。我記得我之前使用spring-boot-starter-data-jpa在JPA中設置了Springboot。spring-data-jpa和spring-boot-starter-data-jpa之間的區別

我已經看到的大多數在線示例以及starter.spring.io提供了下面對spring jpa的依賴關係。

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-jpa</artifactId> 
</dependency> 

但在現有項目的一個我碰到彈簧數據的JPA

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>1.11.4.RELEASE</version> 
</dependency> 

來到做了一些谷歌沒有給我,如果他們是不同的或沒有。

在我添加JPA的所有以前的項目中,雖然是JPA 2.1/Hibernate,但是我仍然不確定在新的SpringBoot應用程序中使用2的哪一個。

+1

與Spring Boot一起去。遵循指南:https://spring.io/guides/gs/accessing-data-jpa/ – duffymo

+0

@duffymo感謝您的參考。多數民衆贊成在彈簧引導jpa設置完成之前,我已經完成了org.springframework.data - > spring-data-jpa – Acewin

回答

5

docs所述,starter one對於該特定庫的所有必需的依賴性而言是方便的內聯,即其本身包含其他依賴關係,而不是您手動編寫這些依賴關係。

看看spring-boot-starter-data-jpapom.xml,你會看到它包括spring-data-jpa作爲許多其他依賴項。

Spring Boot Starters是一套方便的依賴關係描述符 ,您可以將其包含在您的應用程序中。您可以通過 獲得所需的所有彈簧和相關技術,而無需通過示例代碼搜索 並複製粘貼 描述符的負載。例如,如果您想開始使用Spring和JPA進行數據庫訪問,只需在項目中包含spring-boot-starter-data-jpa 依賴項,那麼您就很好。

+0

那麼在哪裏org.springframework。數據 - > spring-data-jpa進入圖片還是spring-boot-starter-data-jpa包含spring-data-jpa – Acewin

+0

Artem正確:Spring Boot版本引入Spring JPA JAR和其他作爲它的依賴關係。 – duffymo

+0

@Acewin我更新了答案(請參閱關於pom.xml部分)。 –

3

檢查pom.xml中的彈簧引導起動數據JPA這裏:https://github.com/spring-projects/spring-boot/blob/master/spring-boot-starters/spring-boot-starter-data-jpa/pom.xml

閱讀說明標籤,它說:「入門使用與Hibernate春數據JPA」。

因此spring-boot-starter-data-jpa使用Spring Data JPA和Hibernate作爲實現。這是硬編碼的,可以這麼說。

如果您現在檢查spring-data-jpa的pom.xml,它是與實現無關的。並且要在任何項目中使用Spring Data JPA,一個必須提供使用的實現。不這樣做會給你一個錯誤。

Spring Data JPA文檔聲明它目前支持Hibernate 5(Apache)OpenJPA 2.4和EclipseLink 2.6.1。在這裏閱讀:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#new-features.1-10-0

+0

其他人已經幫助我瞭解項目的鏈接到pom.xml – Acewin