入门
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 项目中
dependencies {
...
compile("org.springframework.boot:spring-boot-starter-data-rest")
...
}
以下示例展示了如何在 Spring Boot 项目中使用 Maven 包含 Spring Data Rest。
<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
工件添加到您的编译时依赖项,如下所示
dependencies {
… other project dependencies
compile("org.springframework.data:spring-data-rest-webmvc:4.3.0")
}
将 Spring Data REST 添加到 Maven 项目
要将 Spring Data REST 添加到基于 Maven 的项目,请将 spring-data-rest-webmvc
工件添加到您的编译时依赖项,如下所示
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>4.3.0</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
并实现或覆盖与您的用例相关的 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,使用各种选项。