跳到主要内容

开始使用

DeepSeek V3 中英对照 Getting started

Spring Data REST 本身是一个 Spring MVC 应用程序,其设计旨在与您现有的 Spring MVC 应用程序轻松集成。现有的(或未来的)服务层可以与 Spring Data REST 并行运行,只需少量的额外工作。

将 Spring Data REST 添加到 Spring Boot 项目中

最简单的方式是构建一个 Spring Boot 应用程序,因为 Spring Boot 提供了 Spring Data REST 的启动器,并且使用了自动配置。以下示例展示了如何使用 Gradle 将 Spring Data Rest 包含在 Spring Boot 项目中:

示例 1. 使用 Gradle 配置 Spring Boot

dependencies {
...
compile("org.springframework.boot:spring-boot-starter-data-rest")
...
}
groovy

以下示例展示了如何在 Spring Boot 项目中使用 Maven 引入 Spring Data Rest:

示例 2. 使用 Maven 配置 Spring Boot

<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
...
</dependencies>
xml
备注

如果你使用的是 Spring Boot Gradle 插件Spring Boot Maven 插件,你不需要提供版本号。

当你使用 Spring Boot 时,Spring Data REST 会自动进行配置。

将 Spring Data REST 添加到 Gradle 项目

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

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

将 Spring Data REST 添加到 Maven 项目中

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

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

配置 Spring Data REST

要在现有的 Spring MVC 应用程序中安装 Spring Data REST,你需要包含适当的 MVC 配置。Spring Data REST 的配置定义在一个名为 RepositoryRestMvcConfiguration 的类中,你可以将这个类导入到应用程序的配置中。

important

如果你使用 Spring Boot 的自动配置,这一步是不必要的。当你包含 spring-boot-starter-data-rest 并且在你的依赖列表中,你的应用程序标记了 @SpringBootApplication@EnableAutoConfiguration 时,Spring Boot 会自动启用 Spring Data REST。

要自定义配置,注册一个 RepositoryRestConfigurer 并实现或覆盖与你的用例相关的 configure… 方法。

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

Spring Data REST 的基本设置

本节介绍了在配置 Spring Data REST 应用时可以调整的基本设置,包括:

设置仓库检测策略

Spring Data REST 使用 RepositoryDetectionStrategy 来确定是否将仓库作为 REST 资源导出。RepositoryDiscoveryStrategies 枚举包含以下值:

表 1. 仓库检测策略

|
|
| 名称 | 描述 |
| DEFAULT | 暴露所有公共仓库接口,但会考虑 @(Repository)RestResourceexported 标志。 |
| ALL | 暴露所有仓库,不受类型可见性和注解的限制。 |
| ANNOTATED | 仅暴露使用 @(Repository)RestResource 注解的仓库,除非它们的 exported 标志设置为 false。 |
| VISIBILITY | 仅暴露带有注解的公共仓库。 |

更改基础 URI

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

从 Spring Boot 1.2 及更高版本开始,你可以通过在 application.properties 中设置一个属性来更改基础 URI,如下所示:

spring.data.rest.basePath=/api
properties

对于 Spring Boot 1.1 或更早版本,或者如果你没有使用 Spring Boot,你可以执行以下操作:

@Configuration
class CustomRestMvcConfiguration {

@Bean
public RepositoryRestConfigurer repositoryRestConfigurer() {

return new RepositoryRestConfigurer() {

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

或者,你可以将自定义的 RepositoryRestConfigurer 实现注册为 Spring bean,并确保它被组件扫描到,如下所示:

@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {

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

前面的两种方法都将基础路径更改为 /api

更改其他 Spring Data REST 属性

您可以更改以下属性:

表 2. Spring Boot 可配置属性

|
|
| 属性 | 描述 |
| basePath | Spring Data REST 的根 URI |
| defaultPageSize | 更改单页返回的默认项目数量 |
| maxPageSize | 更改单页返回的最大项目数量 |
| pageParamName | 更改用于选择页面的查询参数的名称 |
| limitParamName | 更改用于指定页面显示项目数量的查询参数的名称 |
| sortParamName | 更改用于排序的查询参数的名称 |
| defaultMediaType | 更改在未指定媒体类型时使用的默认媒体类型 |
| returnBodyOnCreate | 更改在创建新实体时是否应返回响应体 |
| returnBodyOnUpdate | 更改在更新实体时是否应返回响应体 |

启动应用程序

此时,你还需要配置你的密钥数据存储。

Spring Data REST 官方支持:

以下入门指南可以帮助您快速上手并运行:

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

你可以将你的应用程序作为 Spring Boot 应用运行(使用前面展示的链接),或者将其配置为经典的 Spring MVC 应用。

备注

通常来说,Spring Data REST 并不会为特定的数据存储添加功能。这意味着,从定义上讲,它应该可以与任何支持仓库编程模型的 Spring Data 项目一起使用。上面列出的数据存储是我们已经编写了集成测试以验证 Spring Data REST 可以与它们一起工作的那些。

从现在开始,您可以通过各种选项自定义 Spring Data REST