我试图“真正”地理解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框架,还是它完全是一个复杂的框架?
有人能帮我理解一下吗?
发布于 2016-04-28 17:45:51
我不认为它的名字是错误的(免责声明:我是项目负责人)。所有Spring数据项目都列出了它们以自己的名义所基于的存储或API。Spring数据JPA基本上是用于JPA的Spring数据,就像Spring数据MongoDB是用于MongoDB的Spring数据一样,就像Spring是用于批处理应用程序的Spring一样,Spring是用于集成项目的Spring。
纠正JPA的依赖关系图:
Application -> Spring Data JPA -> JPA <- Hibernate -> JDBC -> DataSource
-> — uses
<- — implementsMongoDB也是如此:
Application -> Spring Data MongoDB -> MongoDB Java driver -> MongoDB等等,我仍然感兴趣的是,您从哪里得到的印象是Spring是JPA的一个实现,因为它既不是project page,也不是reference documentation状态。事实上,特别是project page非常明确地说明了项目提供了哪些功能。此外,它可能有助于研究description of the umbrella project,它试图为包含在其中的所有模块设置一些基本的上下文。
https://stackoverflow.com/questions/36920843
复制相似问题