12. 整合
本节详细介绍了各种方法来与Spring Data Rest组成,无论是从一个使用Spring Data Rest 的Spring程序或者其他手段。
12.1. 项目链接
有时你需要添加链接到你自己的定制的Spring MVC控制器输出资源。有三个基本层次的连接可用:
- 手工装配环节 
- 使用 Spring HATEOAS’s LinkBuilder with - linkTo(),- slash(), etc.
- 使用 Spring Data REST’s implementation of RepositoryEntityLinks. 
第一个建议是可怕的,应该不惜一切代价避免。它使你的代码脆性和高风险。第二个是方便当创建链接到其他手写Spring MVC控制器。最后一个是你会在某个时刻看到使用Spring Data Rest输出的好的寻找资源的链接,假设您已配置了您的代码使用Spring的自动装配。
publicclassMyWebApp{privateRepositoryEntityLinks entityLinks;@AutowiredpublicMyWebApp(RepositoryEntityLinks entityLinks){this.entityLinks = entityLinks;}}
…你可以使用以下步骤:
Table 3. 链接到导出资源的方法
| 方法 | 描述 | 
|---|---|
| entityLinks.linkToCollectionResource(Person.class) | 提供该类型的集合资源的链接. | 
| entityLinks.linkToSingleResource(Person.class, 1) | 提供一个链接到一个单一的资源. | 
| entityLinks.linkToPagedResource(Person.class, new PageRequest(…)) | 一个分页的资源提供一个链接. | 
| entityLinks.linksToSearchResources(Person.class) | 提供由相应的存储库暴露的所有查找器方法的链接列表. | 
| entityLinks.linkToSearchResource(Person.class, "findByLastName") | 通过提供一个人的名字来查找链接关系. | 
|  | 所有的基于搜索的链接支持额外的参数进行分页和排序。校验 RepositoryEntityLinks for specifics.他还会 linkFor(Class<?> type), 但是返回 a Spring HATEOAS LinkBuilder, 和较低级别的api,也可以尝试用用其他的 |
| --- | --- |