对于最新的稳定版本,请使用 Spring Data REST 4.3.1Spring中文文档

对于最新的稳定版本,请使用 Spring Data REST 4.3.1Spring中文文档

Spring Data REST本身就是一个Spring MVC应用程序,其设计方式使其可以毫不费力地与您现有的Spring MVC应用程序集成。现有(或未来)服务层可以与Spring Data REST一起运行,只需少量的额外工作。Spring中文文档

将 Spring Data REST 添加到 Spring Boot 项目

最简单的入门方法是构建 Spring Boot 应用程序,因为 Spring Boot 具有 Spring Data REST 的启动器并使用自动配置。以下示例演示如何使用 Gradle 在 Spring Boot 项目中包含 Spring Data Rest:Spring中文文档

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

以下示例演示如何使用 Maven 在 Spring Boot 项目中包含 Spring Data Rest:Spring中文文档

例 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中文文档

如果您使用 Spring Boot Gradle 插件Spring Boot Maven 插件,则无需提供版本号。

将 Spring Data REST 添加到 Gradle 项目

要将 Spring Data REST 添加到基于 Gradle 的项目,请将工件添加到编译时依赖项中,如下所示:spring-data-rest-webmvcSpring中文文档

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

将 Spring Data REST 添加到 Maven 项目

要将 Spring Data REST 添加到基于 Maven 的项目,请将项目添加到编译时依赖项,如下所示:spring-data-rest-webmvcSpring中文文档

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

配置 Spring Data REST

若要将 Spring Data REST 与现有的 Spring MVC 应用程序一起安装,需要包含相应的 MVC 配置。 Spring Data REST配置在一个名为的类中定义,您可以将该类导入到应用程序的配置中。RepositoryRestMvcConfigurationSpring中文文档

如果您使用 Spring Boot 的自动配置,则不需要此步骤。当您包含spring-boot-starter-data-rest时,Spring Boot会自动启用Spring Data REST,并且在依赖项列表中,您的应用会标记为任一或。@SpringBootApplication@EnableAutoConfiguration

要自定义配置,请注册并实现或覆盖与您的用例相关的 -methods。RepositoryRestConfigurerconfigure…Spring中文文档

请确保还为您使用的存储配置了 Spring Data 存储库。有关详细信息,请参阅相应 Spring Data 模块的参考文档。Spring中文文档

如果您使用 Spring Boot 的自动配置,则不需要此步骤。当您包含spring-boot-starter-data-rest时,Spring Boot会自动启用Spring Data REST,并且在依赖项列表中,您的应用会标记为任一或。@SpringBootApplication@EnableAutoConfiguration

Spring Data REST的基本设置

本节介绍在配置Spring Data REST应用程序时可以操作的基本设置,包括:Spring中文文档

设置存储库检测策略

Spring Data REST使用一个来确定存储库是否导出为REST资源。枚举包括以下值:RepositoryDetectionStrategyRepositoryDiscoveryStrategiesSpring中文文档

表 1.存储库检测策略

名字Spring中文文档

描述Spring中文文档

DEFAULTSpring中文文档

公开所有公共存储库接口,但考虑 的标志。exported@(Repository)RestResourceSpring中文文档

ALLSpring中文文档

公开所有存储库,而与类型可见性和注释无关。Spring中文文档

ANNOTATEDSpring中文文档

仅公开带有注释的存储库,除非其标志设置为 。@(Repository)RestResourceexportedfalseSpring中文文档

VISIBILITYSpring中文文档

仅公开带注释的公共存储库。Spring中文文档

更改基本 URI

默认情况下,Spring Data REST在根URI'/'处提供REST资源。有多种方法可以更改基本路径。Spring中文文档

在 Spring Boot 1.2 及更高版本中,您可以通过在 中设置单个属性来更改基本 URI,如下所示:application.propertiesSpring中文文档

spring.data.rest.basePath=/api

使用 Spring Boot 1.1 或更早版本,或者如果您未使用 Spring Boot,则可以执行以下操作:Spring中文文档

@Configuration
class CustomRestMvcConfiguration {

  @Bean
  public RepositoryRestConfigurer repositoryRestConfigurer() {

    return new RepositoryRestConfigurer() {

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

或者,您可以将自定义实现注册为 Spring Bean,并确保它被组件扫描拾取,如下所示:RepositoryRestConfigurerSpring中文文档

@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {

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

上述两种方法都将基本路径更改为 。/apiSpring中文文档

更改其他 Spring 数据 REST 属性

您可以更改以下属性:Spring中文文档

表 2.Spring Boot 可配置属性

财产Spring中文文档

描述Spring中文文档

basePathSpring中文文档

Spring Data REST 的根 URISpring中文文档

defaultPageSizeSpring中文文档

更改单个页面中提供的项目数的默认值Spring中文文档

maxPageSizeSpring中文文档

更改单个页面中的最大项目数Spring中文文档

pageParamNameSpring中文文档

更改用于选择页面的查询参数的名称Spring中文文档

limitParamNameSpring中文文档

更改要在页面中显示的项目数的查询参数的名称Spring中文文档

sortParamNameSpring中文文档

更改用于排序的查询参数的名称Spring中文文档

defaultMediaTypeSpring中文文档

更改指定“无”时要使用的默认介质类型Spring中文文档

returnBodyOnCreateSpring中文文档

更改创建新实体时是否应返回正文Spring中文文档

returnBodyOnUpdateSpring中文文档

更改在更新实体时是否应返回正文Spring中文文档

表 1.存储库检测策略

名字Spring中文文档

描述Spring中文文档

DEFAULTSpring中文文档

公开所有公共存储库接口,但考虑 的标志。exported@(Repository)RestResourceSpring中文文档

ALLSpring中文文档

公开所有存储库,而与类型可见性和注释无关。Spring中文文档

ANNOTATEDSpring中文文档

仅公开带有注释的存储库,除非其标志设置为 。@(Repository)RestResourceexportedfalseSpring中文文档

VISIBILITYSpring中文文档

仅公开带注释的公共存储库。Spring中文文档

表 2.Spring Boot 可配置属性

财产Spring中文文档

描述Spring中文文档

basePathSpring中文文档

Spring Data REST 的根 URISpring中文文档

defaultPageSizeSpring中文文档

更改单个页面中提供的项目数的默认值Spring中文文档

maxPageSizeSpring中文文档

更改单个页面中的最大项目数Spring中文文档

pageParamNameSpring中文文档

更改用于选择页面的查询参数的名称Spring中文文档

limitParamNameSpring中文文档

更改要在页面中显示的项目数的查询参数的名称Spring中文文档

sortParamNameSpring中文文档

更改用于排序的查询参数的名称Spring中文文档

defaultMediaTypeSpring中文文档

更改指定“无”时要使用的默认介质类型Spring中文文档

returnBodyOnCreateSpring中文文档

更改创建新实体时是否应返回正文Spring中文文档

returnBodyOnUpdateSpring中文文档

更改在更新实体时是否应返回正文Spring中文文档

启动应用程序

此时,还必须配置密钥数据存储。Spring中文文档

Spring Data REST正式支持:Spring中文文档

以下入门指南可帮助您快速启动和运行:Spring中文文档

这些链接指南介绍了如何为相关数据存储添加依赖项、配置域对象以及定义存储库。Spring中文文档

可以将应用程序作为 Spring Boot 应用(使用前面显示的链接)运行,也可以将其配置为经典的 Spring MVC 应用。Spring中文文档

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

从这一点开始,您可以使用各种选项自定义 Spring Data RESTSpring中文文档

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