对于最新的稳定版本,请使用 Spring Data REST 4.5.3spring-doc.cadn.net.cn

开始

Spring Data REST 本身就是一个 Spring MVC 应用程序,其设计方式使其可以轻松地与现有的 Spring MVC 应用程序集成。现有(或未来)服务层可以与 Spring Data REST 一起运行,只需进行少量的额外工作。spring-doc.cadn.net.cn

将 Spring Data REST 添加到 Spring Boot 项目

最简单的入门方法是构建 Spring Boot 应用程序,因为 Spring Boot 具有 Spring Data REST 的Starters并使用自动配置。以下示例显示如何使用 Gradle 在 Spring Boot 项目中包含 Spring Data Rest:spring-doc.cadn.net.cn

示例 1.使用 Gradle 进行 Spring Boot 配置
dependencies {
  ...
  compile("org.springframework.boot:spring-boot-starter-data-rest")
  ...
}

以下示例显示如何使用 Maven 在 Spring Boot 项目中包含 Spring Data Rest:spring-doc.cadn.net.cn

示例 2.使用 Maven 进行 Spring Boot 配置
<dependencies>
  ...
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
  </dependency>
  ...
</dependencies>
如果您使用 Spring Boot Gradle 插件Spring Boot Maven 插件,则无需提供版本号。

使用 Spring Boot 时,会自动配置 Spring Data REST。spring-doc.cadn.net.cn

将 Spring Data REST 添加到 Gradle 项目

要将 Spring Data REST 添加到基于 Gradle 的项目,请将spring-data-rest-webmvcartifact 添加到编译时依赖项,如下所示:spring-doc.cadn.net.cn

dependencies {
  … other project dependencies
  compile("org.springframework.data:spring-data-rest-webmvc:4.4.9")
}

将 Spring Data REST 添加到 Maven 项目

要将 Spring Data REST 添加到基于 Maven 的项目,请将spring-data-rest-webmvcartifact 添加到编译时依赖项,如下所示:spring-doc.cadn.net.cn

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-rest-webmvc</artifactId>
  <version>4.4.9</version>
</dependency>

配置 Spring Data REST

要将 Spring Data REST 与现有的 Spring MVC 应用程序一起安装,您需要包含适当的 MVC 配置。Spring Data REST 配置在名为RepositoryRestMvcConfiguration并且您可以将该类导入到应用程序的配置中。spring-doc.cadn.net.cn

如果您使用 Spring Boot 的自动配置,则不需要此步骤。当您包含 spring-boot-starter-data-rest 并且在您的依赖项列表中,您的应用程序被标记为@SpringBootApplication@EnableAutoConfiguration.

要自定义配置,请注册一个RepositoryRestConfigurer并实现或覆盖configure…-与您的用例相关的方法。spring-doc.cadn.net.cn

确保您还为您使用的存储配置了 Spring Data 存储库。有关这方面的详细信息,请参阅相应 Spring Data 模块的参考文档。spring-doc.cadn.net.cn

Spring Data REST 的基本设置

本节介绍在配置 Spring Data REST 应用程序时可以作的基本设置,包括:spring-doc.cadn.net.cn

设置存储库检测策略

Spring Data REST 使用RepositoryDetectionStrategy以确定存储库是否导出为 REST 资源。 这RepositoryDiscoveryStrategies枚举包括以下值:spring-doc.cadn.net.cn

表 1.存储库检测策略

名称spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

DEFAULTspring-doc.cadn.net.cn

公开所有公共存储库接口,但考虑exported标志@(Repository)RestResource.spring-doc.cadn.net.cn

ALLspring-doc.cadn.net.cn

公开所有存储库,独立于类型可见性和注释。spring-doc.cadn.net.cn

ANNOTATEDspring-doc.cadn.net.cn

仅用@(Repository)RestResource暴露,除非他们的exported标志设置为false.spring-doc.cadn.net.cn

VISIBILITYspring-doc.cadn.net.cn

仅公开带注释的公共存储库。spring-doc.cadn.net.cn

更改基本 URI

默认情况下,Spring Data REST 在根 URI '/' 处提供 REST 资源。有多种方法可以更改基本路径。spring-doc.cadn.net.cn

在 Spring Boot 1.2 及更高版本中,您可以通过在application.properties如下:spring-doc.cadn.net.cn

spring.data.rest.basePath=/api

使用 Spring Boot 1.1 或更早版本,或者如果您不使用 Spring Boot,您可以执行以下作:spring-doc.cadn.net.cn

@Configuration
class CustomRestMvcConfiguration {

  @Bean
  public RepositoryRestConfigurer repositoryRestConfigurer() {

    return new RepositoryRestConfigurer() {

      @Override
      public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
        config.setBasePath("/api");
      }
    };
  }
}

或者,您可以注册RepositoryRestConfigurer作为 Spring bean,并确保它被组件扫描拾取,如下所示:spring-doc.cadn.net.cn

@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {

  @Override
  public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
    config.setBasePath("/api");
  }
}

上述两种方法都将基本路径更改为/api.spring-doc.cadn.net.cn

更改其他 Spring Data REST 属性

您可以更改以下属性:spring-doc.cadn.net.cn

表 2.Spring Boot 可配置属性

属性spring-doc.cadn.net.cn

描述spring-doc.cadn.net.cn

basePathspring-doc.cadn.net.cn

Spring Data REST 的根 URIspring-doc.cadn.net.cn

defaultPageSizespring-doc.cadn.net.cn

更改单个页面中提供的项目数量的默认值spring-doc.cadn.net.cn

maxPageSizespring-doc.cadn.net.cn

更改单个页面中的最大项目数spring-doc.cadn.net.cn

pageParamNamespring-doc.cadn.net.cn

更改用于选择页面的查询参数的名称spring-doc.cadn.net.cn

limitParamNamespring-doc.cadn.net.cn

更改要在页面中显示的项数的查询参数的名称spring-doc.cadn.net.cn

sortParamNamespring-doc.cadn.net.cn

更改排序的查询参数名称spring-doc.cadn.net.cn

defaultMediaTypespring-doc.cadn.net.cn

更改默认媒体类型,以便在未指定时使用spring-doc.cadn.net.cn

returnBodyOnCreatespring-doc.cadn.net.cn

更改创建新实体时是否应返回正文spring-doc.cadn.net.cn

returnBodyOnUpdatespring-doc.cadn.net.cn

更改更新实体时是否应返回正文spring-doc.cadn.net.cn

启动应用程序

此时,还必须配置关键数据存储。spring-doc.cadn.net.cn

Spring Data REST 官方支持:spring-doc.cadn.net.cn

以下入门指南可以帮助您快速启动和运行:spring-doc.cadn.net.cn

这些链接指南介绍了如何为相关数据存储添加依赖项、配置域对象以及定义存储库。spring-doc.cadn.net.cn

您可以将应用程序作为 Spring Boot 应用程序运行(使用前面显示的链接),也可以将其配置为经典的 Spring MVC 应用程序。spring-doc.cadn.net.cn

通常,Spring Data REST 不会向给定的数据存储添加功能。这意味着,根据定义,它应该适用于任何支持存储库编程模型的 Spring Data 项目。上面列出的数据存储是我们为其编写集成测试以验证 Spring Data REST 是否与它们一起使用的数据存储。

从这一点开始,您可以使用各种选项自定义 Spring Data RESTspring-doc.cadn.net.cn