入门
Spring Data REST 本身就是一个 Spring MVC 应用,其设计旨在能够轻松集成到您现有的 Spring MVC 应用中。现有(或未来)的服务层可以与 Spring Data REST 并行运行,只需少量额外工作。
将 Spring Data REST 添加到 Spring Boot 项目
最简单的入门方法是构建一个 Spring Boot 应用,因为 Spring Boot 提供了 Spring Data REST starter 并使用自动配置。以下示例展示了如何使用 Gradle 将 Spring Data REST 包含到 Spring Boot 项目中。
dependencies {
...
compile("org.springframework.boot:spring-boot-starter-data-rest")
...
}
以下示例展示了如何使用 Maven 将 Spring Data REST 包含到 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 Data REST 添加到 Gradle 项目
要将 Spring Data REST 添加到基于 Gradle 的项目,请将 spring-data-rest-webmvc
artifact 添加到您的编译时依赖项中,如下所示:
dependencies {
… other project dependencies
compile("org.springframework.data:spring-data-rest-webmvc:4.4.5")
}
将 Spring Data REST 添加到 Maven 项目
要将 Spring Data REST 添加到基于 Maven 的项目,请将 spring-data-rest-webmvc
artifact 添加到您的编译时依赖项中,如下所示:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>4.4.5</version>
</dependency>
配置 Spring Data REST
要将 Spring Data REST 安装在您现有 Spring MVC 应用旁边,您需要包含相应的 MVC 配置。Spring Data REST 的配置定义在一个名为 RepositoryRestMvcConfiguration
的类中,您可以将该类导入到您的应用配置中。
如果您使用 Spring Boot 的自动配置,则无需此步骤。当您包含 spring-boot-starter-data-rest 并在依赖项列表中标记您的应用为 @SpringBootApplication 或 @EnableAutoConfiguration 时,Spring Boot 会自动启用 Spring Data REST。 |
要自定义配置,请注册一个 RepositoryRestConfigurer
Bean,并实现或覆盖与您的用例相关的 configure…
方法。
确保您也为您使用的存储配置了 Spring Data 仓库。有关详细信息,请参阅相应 Spring Data 模块的参考文档。
Spring Data REST 的基本设置
本节介绍了配置 Spring Data REST 应用时可以操作的基本设置,包括:
设置仓库检测策略
Spring Data REST 使用 RepositoryDetectionStrategy
来确定仓库是否作为 REST 资源导出。RepositoryDiscoveryStrategies
枚举包含以下值:
名称 |
描述 |
|
暴露所有公共仓库接口,但会考虑 |
|
暴露所有仓库,不受类型可见性和注解的影响。 |
|
仅暴露使用 |
|
仅暴露使用注解的公共仓库。 |
更改基本 URI
默认情况下,Spring Data REST 在根 URI '/' 提供 REST 资源。有多种方法可以更改基本路径。
使用 Spring Boot 1.2 及更高版本,您可以通过在 application.properties
中设置一个属性来更改基本 URI,如下所示:
spring.data.rest.basePath=/api
使用 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");
}
};
}
}
另外,您可以将 RepositoryRestConfigurer
的自定义实现注册为 Spring Bean,并确保它能被组件扫描检测到,如下所示:
@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
config.setBasePath("/api");
}
}
上述两种方法都将基本路径更改为 /api
。
更改其他 Spring Data REST 属性
您可以修改以下属性:
属性 |
描述 |
|
Spring Data REST 的根 URI |
|
更改单个页面中提供的项目数量的默认值 |
|
更改单个页面中的最大项目数量 |
|
更改用于选择页面的查询参数名称 |
|
更改用于指定页面显示项目数量的查询参数名称 |
|
更改用于排序的查询参数名称 |
|
更改未指定时使用的默认媒体类型 |
|
更改创建新实体时是否应返回响应体 |
|
更改更新实体时是否应返回响应体 |
启动应用
至此,您还必须配置您的主要数据存储。
Spring Data REST 官方支持:
以下入门指南可以帮助您快速启动和运行:
这些链接的指南介绍了如何添加相关数据存储的依赖项、配置域对象以及定义仓库。
您可以将您的应用作为 Spring Boot 应用运行(使用前面显示的链接),或者将其配置为经典的 Spring MVC 应用。
通常,Spring Data REST 不会向给定的数据存储添加功能。这意味着,根据定义,它应该与任何支持仓库编程模型的 Spring Data 项目一起工作。上面列出的数据存储是那些我们编写了集成测试来验证 Spring Data REST 与之兼容的数据存储。 |
从这里开始,您可以使用各种选项自定义 Spring Data REST。