集成
本节详细介绍了与 Spring Data REST 组件集成的各种方式,无论是从使用 Spring Data REST 的 Spring 应用程序还是通过其他方式。
编程链接
有时,您需要在自己自定义的 Spring MVC 控制器中向导出的资源添加链接。有三种基本级别的链接可用:
-
手动组装链接。
-
使用 Spring HATEOAS 的
LinkBuilder,结合linkTo()、slash()等。 -
使用 Spring Data REST 的
RepositoryEntityLinks实现。
第一个建议很糟糕,应该不惜一切代价避免。它使您的代码脆弱且风险高。第二个在创建指向其他手写 Spring MVC 控制器的链接时很方便。最后一个,我们将在本节的其余部分进行探讨,适用于查找由 Spring Data REST 导出的资源链接。
考虑以下使用 Spring 自动装配的类:
public class MyWebApp {
private RepositoryEntityLinks entityLinks;
@Autowired
public MyWebApp(RepositoryEntityLinks entityLinks) {
this.entityLinks = entityLinks;
}
}
使用上例中的类,您可以执行以下操作:
| 方法 | 描述 |
|---|---|
|
提供指向指定类型(本例中为 |
|
提供指向单个资源的链接。 |
|
提供指向分页资源的链接。 |
|
提供相应存储库公开的所有查找器方法的链接列表。 |
|
通过 |
所有基于搜索的链接都支持分页和排序的额外参数。详情请参阅 RepositoryEntityLinks。还有 linkFor(Class<?> type),但它返回一个 Spring HATEOAS LinkBuilder,这会将您带回较低级别的 API。请优先尝试使用其他方法。 |