整合

本節詳細介紹了與 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)

為相應的 repository 公開的所有 finder 方法提供連結列表。

entityLinks.linkToSearchResource(Person.class, "findByLastName")

rel(即 finder 的名稱)提供 finder 連結。

所有基於搜尋的連結都支援分頁和排序的額外引數。 有關詳細資訊,請參閱 RepositoryEntityLinks。 還有 linkFor(Class<?> type),但它返回一個 Spring HATEOAS LinkBuilder,它將您返回到較低級別的 API。 嘗試先使用其他的。