Разница между spring -data-jpa и spring -boot-starter-data-jpa
Это не лучший вопрос, но я заметил, что есть 2 Spring JPA для загрузки Spring. Насколько они разные. В настоящее время я пытаюсь настроить проект SpringBoot 1.5.3 вместе с спящим режимом. Я помню, что раньше у меня была установка Springboot с 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>
Но в одном из существующих проектов я столкнулся с spring -data-jpa
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.11.4.RELEASE</version>
</dependency>
Выполнение немного Google не дало мне, если они разные или нет.
Во всех моих предыдущих проектах, где я добавил JPA, был JPA 2.1/Hibernate, поэтому я немного не уверен, какой из двух использовать в моем новом приложении SpringBoot.
Ответы
Ответ 1
Как указано в документации, то starter
один удобный Inliner для всех необходимых зависимостей для этой конкретной библиотеки, т.е. включает в себя другую зависимость в себе, вместо того, чтобы вы писать их вручную.
Посмотрите на spring-boot-starter-data-jpa
pom.xml, вы увидите, что он включает в себя spring-data-jpa
как зависимость среди многих других.
Spring Boot Starters - это набор удобных дескрипторов зависимостей, которые вы можете включить в свое приложение. Вы получаете универсальное решение для всех необходимых вам Spring и связанных с ними технологий без необходимости искать примеры кода и копировать множество дескрипторов зависимостей. Например, если вы хотите начать использовать Spring и JPA для доступа к базе данных, просто включите в ваш проект зависимость spring-boot-starter-data-jpa, и все готово.
Ответ 2
Проверьте pom.xml для spring -boot-starter-data-jpa здесь: https://github.com/spring-projects/spring-boot/blob/master/spring-boot-starters/spring-boot-starter-data-jpa/pom.xml
Прочитайте тег описания, который гласит: "Стартер для использования Spring Data JPA с Hibernate".
Итак, spring -boot-starter-data-jpa использует Spring Data JPA с Hibernate в качестве реализации. Это жестко закодировано, так сказать.
Если вы теперь проверите pom.xml для spring -data-jpa, он является агностическим. А для использования Spring Data JPA в любом проекте один должен обеспечить реализацию. Это не приведет к ошибке.
Spring Документация 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
Ответ 3
Spring Boot предоставляет Spring spring-boot-starter-data-jpa
starter для эффективного соединения приложения Spring с реляционной базой данных. У стартера есть дополнительные зависимости.
spring-data-jpa
используется как зависимость для spring-boot-starter-data-jpa
. Поскольку вы используете весеннюю загрузку версии 1.5.3, вы можете посмотреть здесь.
spring-data-jpa
, часть большого семейства Spring Data, упрощает внедрение репозиториев на основе JPA. Этот модуль имеет дело с расширенной поддержкой слоев доступа к данным на основе JPA. Это облегчает создание приложений на базе Spring, использующих технологии доступа к данным.