我试图“真正”理解Spring Framework . 我对Spring Core(DI)和Spring MVC有了一些了解 .
对于数据部分,我现在专注于Spring Data JPA . 据我所知,JPA是一个标准规范,有多个实现,Hibernate是着名的 .
现在,当我启动Spring Data JPA时,我的印象是Spring Data JPA是JPA规范的 independent implementation . 原来我错了 .
如果我理解正确,Spring Data JPA是Spring提供的抽象层,它在内部使用其他JPA提供程序(示例Hibernate),所以通常它是这样的:
Application ---> Spring Data JPA --> Hiberate --> JDBC ----> DB
我的理解是否正确?如果不是 Spring Data JPA
误导?它本身不是JPA提供者,它只是一个抽象层,它在其他 JPA provider
之上工作 .
我不确定我是否真的了解Spring框架,或者它是一个复杂的框架?
有人可以帮我理解吗?
1 回答
我不知道错误的名字(免责声明:我是项目负责人) . 所有Spring Data项目都会在其名称中列出它们所基于的商店或API . Spring Data JPA基本上是JPA的Spring Data,就像Spring Data MongoDB是MongoDB的Spring Data一样,就像Spring Batch是批处理应用程序的Spring一样,Spring Integration是Spring的集成项目 .
更正JPA的依赖关系图:
MongoDB也一样:
我仍然感兴趣你的确认为Spring Data JPA是JPA的一个实现,因为它既不是project page也不是reference documentation状态 . 事实上,尤其是project page非常清楚项目提供的功能 . 此外,它可能有助于研究description of the umbrella project,它试图为其中包含的所有模块设置一些基本上下文 .