集成

本节详细介绍了与 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;
	}
}

使用前面示例中的类,您可以使用以下操作

表 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。请先尝试使用其他方法。