4. 入门
4.1. 引言
Spring Data REST本身是一个Spring MVC的应用并且它的设计就是这样一种方式用非常小的努力整合你现有的Spring MVC应用程序。一个现有的(或未来的)一层服务可以运行在Spring Data REST只需要注意一些细微之处。
4.2. 添加Spring Data REST到一个Spring Boot project
最简单的启动的方法就是如果你正在创建一个Spring Boot应用程序,这是因为Spring Data REST有一个启动器同时可以自动配置。
Spring Boot的配置工具
dependencies {...
compile("org.springframework.boot:spring-boot-starter-data-rest")...}
在Maven配置Spring Boot
<dependencies>
...
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-rest</artifactId></dependency>
...
</dependencies>
如果你正在使用Spring Boot Gradle plugin或者Spring Boot Maven plugin的话就不必提供版本号。 | |
---|---|
当我们使用Spring Boot,Spring Data REST会自动配置。
4.3. 添加 Spring Data REST 到 Gradle project
基于Gradle项目添加Spring Data REST,添加spring-data-rest-webmvc
生成你的编译时依赖项:
dependencies {… other project dependencies
compile("org.springframework.data:spring-data-rest-webmvc:2.5.2.RELEASE")}
4.4. 添加Spring Data REST到Maven project
基于Maven项目添加Spring Data REST,添加spring-data-rest-webmvc
生成你的编译时依赖项:
<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-rest-webmvc</artifactId><version>2.5.2.RELEASE</version></dependency>
4.5. 配置Spring Data REST
要在你现有的Spring MVC应用程序中安装Spring Data REST,你需要有适当的MVC结构。Spring Data REST配置定义在一个名叫RepositoryRestMvcConfiguration
的类中并且这个类只可以导入你的应用程序配置。
如果你是使用Spring Data REST的自动配置的话这一步是没有必要的。 Spring Boot将自动启用Spring Data REST当你包括spring-boot-starter-data-rest或者在你的依赖列表中, 你的应用程序被标记为 @SpringBootApplication 或 @EnableAutoConfiguration . |
|
---|---|
自定义配置,创建一个RepositoryRestConfigurer
(或者继承 RepositoryRestConfigurerAdapter
) 然后实现或者重写configure…
与你的用例有关的方法。
确定你还在为你使用的存储配置Spring Data库,对于细节,请查阅参考文献corresponding Spring Data module。
4.6.Spring Data REST的基本设置
4.6.1. 哪些库是默认存在的?
Spring Data REST使用RepositoryDetectionStrategy
去确定是否要导出存储库作为剩余资源。以下策略(对RepositoryDiscoveryStrategies
枚举值)是可用的:
表 1.库检测策略
名称 | 描述 |
---|---|
DEFAULT |
公布所有的公共库的接口但是将@(Repository)RestResource’s 是exported 的标志。 |
ALL |
独立公开类型可见和注释的所有存储库 |
ANNOTATION |
只有标注了 @(Repository)RestResource 的库才公开 ,除非它们exported 的标志设置为false 。 |
VISIBILITY |
只有公共库的注释会被公开 |
4.6.2. 改变基础的URI
默认情况下,Spring Data REST提供了REST根资源URI, "/"。有多种方法去改变基础的路径。
在Spring Boot 1.2+,所有的它需要的是一个单一的属性application.properties
:
spring.data.rest.basePath=/api
在Spring Boot 1.1或者更早的版本,或者你不使用Spring Boot,简单的来做这个:
@ConfigurationclassCustomRestMvcConfiguration{@BeanpublicRepositoryRestConfigurer repositoryRestConfigurer(){returnnewRepositoryRestConfigurerAdapter(){@Overridepublicvoid configureRepositoryRestConfiguration(RepositoryRestConfiguration config){
configuration.setBasePath("/api")}};}}
或者只是创建一个自定义实现的RepositoryRestConfigurer
作为Spring bean并确保它通过了组件的扫描:
@ComponentpublicclassCustomizedRestMvcConfigurationextendsRepositoryRestConfigurerAdapter{@Overridepublicvoid configureRepositoryRestConfiguration(RepositoryRestConfiguration config){
configuration.setBasePath("/api")}}
这两种方法都是将基本路径改为/api
。
4.6.3.更改其他的 Spring Data REST 属性
有许多属性你可以更改:
表 2.Spring Boot可配置的属性
名称 | 描述 |
---|---|
basePath | Spring Data REST的根URI |
defaultPageSize | 更改单个页面中的项目的默认数量 |
maxPageSize | 更改单个页面中的项目的最大数量 |
pageParamName | 用于更改选择页的查询的参数的名称 |
limitParamName | 更改页面中显示项目数的查询参数的名称 |
sortParamName | 用于更改排序的查询的参数的名称 |
defaultMediaType | 更改指定的默认媒体类型时使用 |
returnBodyOnCreate | 如果创建一个新的实体应该返回它的主体进行更改 |
returnBodyOnupdate | 如果更新一个实体应该应该返回它的主体进行更改 |
4.7. 启动应用程序
在这一点上,你还必须配置你的关键数据的存储。
Spring Data REST正式支持:
下面是一些入门指南,以帮助您快速启动和运行:
这些链接指南介绍如何为相关的数据存储区添加依赖关系,配置域对象,并定义存储库。
你可以运行你的应用程序无论是作为一个Spring Boot应用程序(链接显示以上)或配置它作为经典的Spring MVC应用程序。
一般Spring Data REST并不给数据存储添加功能。这就意味着根据定义,它应该支持库编程模型与任何Spring Date项目进行工作。上面列出的简单的数据存储只是我们编写集成测试来验证的。 | |
---|---|
从这一点上,你可以自由地定义 Spring Data REST有各种不同的选择。