对于最新的稳定版本,请使用 Spring Data REST 4.3.1! |
对于最新的稳定版本,请使用 Spring Data REST 4.3.1! |
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 {
...
compile("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 Boot Gradle 插件或 Spring Boot Maven 插件,则无需提供版本号。 |
将 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.2.7")
}
将 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.2.7</version>
</dependency>
配置 Spring Data REST
若要将 Spring Data REST 与现有的 Spring MVC 应用程序一起安装,需要包含相应的 MVC 配置。
Spring Data REST配置在一个名为的类中定义,您可以将该类导入到应用程序的配置中。RepositoryRestMvcConfiguration
如果您使用 Spring Boot 的自动配置,则不需要此步骤。当您包含spring-boot-starter-data-rest时,Spring Boot会自动启用Spring Data REST,并且在依赖项列表中,您的应用会标记为任一或。@SpringBootApplication @EnableAutoConfiguration |
要自定义配置,请注册并实现或覆盖与您的用例相关的 -methods。RepositoryRestConfigurer
configure…
请确保还为您使用的存储配置了 Spring Data 存储库。有关详细信息,请参阅相应 Spring Data 模块的参考文档。
如果您使用 Spring Boot 的自动配置,则不需要此步骤。当您包含spring-boot-starter-data-rest时,Spring Boot会自动启用Spring Data REST,并且在依赖项列表中,您的应用会标记为任一或。@SpringBootApplication @EnableAutoConfiguration |
Spring Data REST的基本设置
本节介绍在配置Spring Data REST应用程序时可以操作的基本设置,包括:
设置存储库检测策略
Spring Data REST使用一个来确定存储库是否导出为REST资源。枚举包括以下值:RepositoryDetectionStrategy
RepositoryDiscoveryStrategies
名字 |
描述 |
|
公开所有公共存储库接口,但考虑 的标志。 |
|
公开所有存储库,而与类型可见性和注释无关。 |
|
仅公开带有注释的存储库,除非其标志设置为 。 |
|
仅公开带注释的公共存储库。 |
更改基本 URI
默认情况下,Spring Data REST在根URI'/'处提供REST资源。有多种方法可以更改基本路径。
在 Spring Boot 1.2 及更高版本中,您可以通过在 中设置单个属性来更改基本 URI,如下所示:application.properties
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");
}
};
}
}
或者,您可以将自定义实现注册为 Spring Bean,并确保它被组件扫描拾取,如下所示:RepositoryRestConfigurer
@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
config.setBasePath("/api");
}
}
上述两种方法都将基本路径更改为 。/api
更改其他 Spring 数据 REST 属性
您可以更改以下属性:
财产 |
描述 |
|
Spring Data REST 的根 URI |
|
更改单个页面中提供的项目数的默认值 |
|
更改单个页面中的最大项目数 |
|
更改用于选择页面的查询参数的名称 |
|
更改要在页面中显示的项目数的查询参数的名称 |
|
更改用于排序的查询参数的名称 |
|
更改指定“无”时要使用的默认介质类型 |
|
更改创建新实体时是否应返回正文 |
|
更改在更新实体时是否应返回正文 |
名字 |
描述 |
|
公开所有公共存储库接口,但考虑 的标志。 |
|
公开所有存储库,而与类型可见性和注释无关。 |
|
仅公开带有注释的存储库,除非其标志设置为 。 |
|
仅公开带注释的公共存储库。 |
财产 |
描述 |
|
Spring Data REST 的根 URI |
|
更改单个页面中提供的项目数的默认值 |
|
更改单个页面中的最大项目数 |
|
更改用于选择页面的查询参数的名称 |
|
更改要在页面中显示的项目数的查询参数的名称 |
|
更改用于排序的查询参数的名称 |
|
更改指定“无”时要使用的默认介质类型 |
|
更改创建新实体时是否应返回正文 |
|
更改在更新实体时是否应返回正文 |
启动应用程序
此时,还必须配置密钥数据存储。
Spring Data REST正式支持:
以下入门指南可帮助您快速启动和运行:
这些链接指南介绍了如何为相关数据存储添加依赖项、配置域对象以及定义存储库。
可以将应用程序作为 Spring Boot 应用(使用前面显示的链接)运行,也可以将其配置为经典的 Spring MVC 应用。
通常,Spring Data REST不会向给定的数据存储添加功能。这意味着,根据定义,它应该与任何支持存储库编程模型的 Spring Data 项目一起使用。上面列出的数据存储是我们编写了集成测试的数据存储,以验证Spring Data REST是否适用于它们。 |
从这一点开始,您可以使用各种选项自定义 Spring Data REST。
通常,Spring Data REST不会向给定的数据存储添加功能。这意味着,根据定义,它应该与任何支持存储库编程模型的 Spring Data 项目一起使用。上面列出的数据存储是我们编写了集成测试的数据存储,以验证Spring Data REST是否适用于它们。 |