web-dev-qa-db-fra.com

Différence entre Spring-Data-JPA et Spring-Boot-Starter-Data-JPA

Ce n'est peut-être pas la meilleure question à poser, mais j'ai remarqué qu'il existe 2 Spring JPA pour Spring boot. Comment sont-ils différents. Actuellement, j'essaie de configurer le projet SpringBoot 1.5.3 avec hibernate. Je me souviens que j'avais configuré Springboot avec JPA plus tôt avec spring-boot-starter-data-jpa.

La plupart des exemples en ligne que j'ai vus ainsi que starter.spring.io fournissent une dépendance ci-dessous pour le printemps jpa.

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

Mais dans l'un des projets existants, je suis tombé sur spring-data-jpa

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

Faire un peu de google ne m'a pas donné s'ils sont différents ou non.

Dans tous mes projets précédents où j'avais ajouté JPA, c'était bien JPA 2.1/Hibernate, c'est pourquoi je ne suis pas certain de savoir lequel des 2 utiliser dans ma nouvelle application SpringBoot.

22
Acewin

Comme indiqué dans le docs , le starter est un inliner pratique pour toutes les dépendances requises pour cette bibliothèque particulière, c'est-à-dire qu'il inclut d'autres dépendances en soi, au lieu de les écrire manuellement.

Regardez dans le spring-boot-starter-data-jpapom.xml , vous y verrez qu'il comprend spring-data-jpa comme une dépendance parmi tant d'autres.

Les Spring Boot Starters sont un ensemble de descripteurs de dépendance pratiques que vous pouvez inclure dans votre application. Vous obtenez un guichet unique pour toutes les technologies Spring et connexes dont vous avez besoin sans avoir à parcourir des exemples de code et à copier-coller des charges de descripteurs de dépendance. Par exemple, si vous souhaitez commencer à utiliser Spring et JPA pour l'accès à la base de données, incluez simplement la dépendance spring-boot-starter-data-jpa dans votre projet, et vous êtes prêt à partir.

27
Artem Novikov

Vérifiez le fichier pom.xml pour Spring-boot-starter-data-jpa ici: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-starters/spring-boot -starter-data-jpa/pom.xml

Lisez la balise de description qui dit: "Démarreur pour utiliser Spring Data JPA avec Hibernate".

Spring-boot-starter-data-jpa utilise donc Spring Data JPA avec Hibernate comme implémentation. C'est codé en dur, pour ainsi dire.

Si vous vérifiez maintenant le fichier pom.xml pour spring-data-jpa, il est indépendant de l'implémentation. Et pour utiliser Spring Data JPA dans n'importe quel projet, il faut fournir l'implémentation à utiliser. Ne pas le faire vous donnera une erreur.

La documentation Spring Data JPA indique qu'elle prend actuellement en charge Hibernate 5, (Apache) OpenJPA 2.4 et EclipseLink 2.6.1. Lisez ici: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#new-features.1-10-

3
Sanora

Spring Boot fournit spring-boot-starter-data-jpa starter pour connecter efficacement l'application spring à la base de données relationnelle. Le démarreur a des dépendances supplémentaires.

spring-data-jpa est utilisé comme dépendance pour spring-boot-starter-data-jpa. Puisque vous utilisez la version Spring Boot 1.5.3, vous pouvez consulter ici .

spring-data-jpa, qui fait partie de la grande famille Spring Data, facilite l'implémentation facile de référentiels basés sur JPA. Ce module traite de la prise en charge améliorée des couches d'accès aux données basées sur JPA. Il facilite la création d'applications basées sur Spring qui utilisent des technologies d'accès aux données.

1
Abdul Alim Shakir