跳到主要内容

集成

DeepSeek V3 中英对照 Integration

本节详细介绍了与 Spring Data REST 组件集成的各种方式,无论是从使用 Spring Data REST 的 Spring 应用程序中,还是通过其他方式。

有时你需要在自定义的 Spring MVC 控制器中为导出的资源添加链接。以下是三种基本的链接级别:

第一个建议非常糟糕,应该不惜一切代价避免使用。它会使你的代码变得脆弱且高风险。第二个建议在创建指向其他手写 Spring MVC 控制器的链接时非常方便。最后一个建议,我们将在本节其余部分探讨,适用于查找由 Spring Data REST 导出的资源链接。

考虑以下类,它使用了 Spring 的自动装配:

public class MyWebApp {

private RepositoryEntityLinks entityLinks;

@Autowired
public MyWebApp(RepositoryEntityLinks entityLinks) {
this.entityLinks = entityLinks;
}
}
java

在前面的示例类中,你可以使用以下操作:

表 1. 链接到导出资源的方式

方法描述
entityLinks.linkToCollectionResource(Person.class)提供指向指定类型(在此示例中为 Person)的集合资源的链接。
entityLinks.linkToItemResource(Person.class, 1)提供指向单个资源的链接。
entityLinks.linkToPagedResource(Person.class, new PageRequest(…​))提供指向分页资源的链接。
entityLinks.linksToSearchResources(Person.class)提供由相应存储库公开的所有查找器方法的链接列表。
entityLinks.linkToSearchResource(Person.class, "findByLastName")通过 rel(即查找器的名称)提供查找器链接。
备注

所有基于搜索的链接都支持用于分页和排序的额外参数。详情请参阅 RepositoryEntityLinks。还有一个 linkFor(Class<?> type) 方法,但它返回的是 Spring HATEOAS 的 LinkBuilder,这将使您回到较低级别的 API。建议先尝试使用其他方法。