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

j7dteeu8  于 2022-10-04  发布在  Spring
关注(0)|答案(3)|浏览(249)

我想知道是否有可能在不使用Spring框架的其余部分的情况下使用Spring data JPA?我在另一个项目的Spring Boot Web应用程序中使用了Spring data JPA,我真的很喜欢它的易用性。

现在我和一些朋友有一个没有服务器的桌面应用程序的小项目,我真的很想使用Spring data JPA,但我还没有找到关于是否可以在没有Bean或Spring框架的其余部分的情况下使用它的信息。

这是可能的吗?或者我应该尝试使用其他JPA?

2guxujil

2guxujil1#

从您的问题来看,我怀疑对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 Backbone->IoC容器。
  • Spring Data JPA不是JPA提供者。它只是JPA标准之上的便利层,使得将JPA ORM插入到Spring应用程序变得很容易。它还使用了与Spring Data 项目族类似的模式,使各种持久化存储对于Spring开发人员来说更易于使用。
  • 如果您希望使用JPA(独立于Spring生态系统的JEE标准API),您绝对可以将一些ORM(例如Hibernate、TopLink)与JPA(javax.Persistence)API一起使用而不使用Spring。

因此,要回答您的问题,您有两个选择:

1.如果您使用的是某种Java桌面框架(例如,Eclipse RCP或基于OSGi的框架),请完全不要使用Spring。您可能想要使用TopLink(来自Eclipse社区)或带有JPAAPI的Hibernate。
1.如果你在做桌面应用,而这些桌面应用是有意义地利用Spring IOC的,那么一定要使用没有网页功能的Spring+Spring Boot+Spring data JPA组合。

f87krz0w

f87krz0w2#

Spring Data 依赖于Spring框架。因此,如果没有Spring框架,就不可能使用它。

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

qltillow

qltillow3#

ApacheDeltaSpike数据模块提供了类似于Spring data JPA(扩展存储库接口,按约定查询)的功能,而不需要Spring。您只需提供CDI和JPA实现(例如,Weld和Hibernate就可以工作)

相关问题