在没有Spring Boot应用程序的情况下使用Spring Data JPA

时间:2018-02-02 09:07:55

标签: java jpa spring-boot spring-data spring-data-jpa


我想知道是否可以在没有Spring框架的其余部分的情况下使用Spring Data JPA?我在Spring Boot Web应用程序中将Spring Data JPA用于另一个项目,并且非常喜欢它的易用性。

现在我和一些朋友在没有服务器的桌面应用程序上有一个小项目,我真的很想使用Spring Data JPA,但是我没有在任何地方找到信息,没有Beans或Spring框架的其余部分就可以使用它。

这是可能的还是我应该尝试使用另一个JPA?

2 个答案:

答案 0 :(得分:2)

从您的问题来看,我怀疑对Spring + Java持久性生态系统的误解很少:

  • 您可以在没有Spring Boot的情况下使用Spring Data JPA(您需要使用Spring Core,因为它是Spring Data JPA依赖项),但它对我来说没有多大意义,因为Spring Boot为您提供了很多方便的魔法和句法糖。
  • Spring + Spring Boot生态系统主要针对Web应用程序进行定制,但也可用于非面向Web的应用程序。如果您正在编写桌面应用程序,则可能会使用某些桌面平台(例如Eclipse RCP)。这些通常不适用于Spring的依赖注入。您仍然可以使用其他独立的Spring + Spring Boot功能,但是您缺少重要的Spring + Spring Boot主干 - > IoC容器。
  • Spring Data JPA不是JPA提供者。它只是JPA标准之上的便利层,可以很容易地将JPA ORM插入Spring应用程序。它还使用Spring Data项目系列中的类似模式,使各种持久性存储易于为Spring开发人员使用。
  • 如果你正在寻找使用JPA(与Spring生态系统分开的JEE标准API),你绝对可以使用一些ORM(例如Hibernate,Toplink) 使用没有Spring的JPA(javax.persistence)API。

所以要回答你的问题,你有两个选择:

  1. 如果您使用某种Java桌面框架(例如Eclipse RCP或基于OSGi的东西),请不要使用Spring。您可能希望使用Toplink(来自Eclipse社区)或使用带有JPA API的Hibernate。
  2. 如果您正在使用有意利用Spring IoC的桌面应用程序,请务必使用没有Web功能的Spring + Spring Boot + Spring Data JPA组合。

答案 1 :(得分:1)

Spring Framework上的Spring Data中继。因此,如果没有Spring Framework,就无法使用它。

但您可以在独立应用程序中使用Hibernate。