Spring Data 项目允许应用程序员使用一致的接口来处理数据存储,该接口使用名为 Repository 的抽象。Spring Data Repository 是在通过域驱动设计流行的 Repository 模式之后建模的。Spring Data 提供了一个名为 Repository 的中央 Java 接口,子项目可以扩展该接口以提供特定于数据存储的功能。 [](https://en.wikipedia.org/wiki/Domain-driven_design)

除了 Repository 接口之外,Spring Data 还提供了两个核心接口 - CrudRepository,它定义了基本 CRUD创建读取更新删除 )功能的合同 ; 和 PagingAndSortingRepository 通过定义分页和排序合同来扩展 CrudRepository

这三个核心接口(RepositoryCrudRepositoryPagingAndSortingRepository)确保:

  1. 应用程序员可以以一致的方式访问数据存储(例如关系数据库,基于文档的 NoSQL 数据库,图形数据库等)。
  2. 可以轻松切换域实体的底层存储 (请参阅域驱动设计 ),而无需更改应用程序与数据存储交互的方式。
  3. 具体实现可以提供特定于数据存储的特​​征。