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,也可以尝试用用其他的 |
| --- | --- |