首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring是一个JPA实现吗?

Spring是一个JPA实现吗?
EN

Stack Overflow用户
提问于 2016-04-28 16:49:34
回答 1查看 5.4K关注 0票数 23

我试图“真正”地理解Spring框架。我对Spring (DI)和Spring有了一定的了解。

关于数据部分,我现在集中讨论Spring。据我所知,JPA是一个标准规范,有多个实现,Hibernate是著名的实现。

现在,当我开始Spring时,我的印象是Spring是JPA规范的一个独立于的实现。结果发现我错了。

如果我正确理解,Spring数据JPA是Spring提供的抽象层,它在内部使用其他JPA提供者(例如Hibernate),所以通常如下所示:

Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB

我的理解正确吗?如果是这样的话,Spring Data JPA是否会产生误导?它本身不是JPA提供者,它只是一个抽象层,它可以在其他JPA provider之上工作。

我不确定我是否真的理解Spring框架,还是它完全是一个复杂的框架?

有人能帮我理解一下吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-28 17:45:51

我不认为它的名字是错误的(免责声明:我是项目负责人)。所有Spring数据项目都列出了它们以自己的名义所基于的存储或API。Spring数据JPA基本上是用于JPA的Spring数据,就像Spring数据MongoDB是用于MongoDB的Spring数据一样,就像Spring是用于批处理应用程序的Spring一样,Spring是用于集成项目的Spring。

纠正JPA的依赖关系图:

代码语言:javascript
复制
Application -> Spring Data JPA -> JPA <- Hibernate -> JDBC -> DataSource

-> — uses
<- — implements

MongoDB也是如此:

代码语言:javascript
复制
Application -> Spring Data MongoDB -> MongoDB Java driver -> MongoDB

等等,我仍然感兴趣的是,您从哪里得到的印象是Spring是JPA的一个实现,因为它既不是project page,也不是reference documentation状态。事实上,特别是project page非常明确地说明了项目提供了哪些功能。此外,它可能有助于研究description of the umbrella project,它试图为包含在其中的所有模块设置一些基本的上下文。

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36920843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档