开始
Spring Data REST本身是一个Spring MVC应用,其设计宗旨是尽可能方便地与现有Spring MVC应用集成。一个现有(或未来的)服务层可以与Spring Data REST并行运行,只需少量额外工作。
将Spring Data REST添加到Spring Boot项目
最简单的入门方法是构建一个Spring Boot应用,因为Spring Boot为Spring Data REST提供了启动器并使用自动配置。以下示例展示了如何使用Gradle在Spring Boot项目中包含Spring Data REST
dependencies {
...
implementation("org.springframework.boot:spring-boot-starter-data-rest")
...
}
以下示例展示了如何使用Maven在Spring Boot项目中包含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 artifact添加到您的编译时依赖项中,如下所示
dependencies {
… other project dependencies
implementation("org.springframework.data:spring-data-rest-webmvc:5.0.0")
}
将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>5.0.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。