整合
本節詳細介紹了與 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。請優先嚐試使用其他方法。 |