整合
本節詳細介紹了與 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;
}
}
使用前面範例中的類別,您可以使用以下操作
方法 | 描述 |
---|---|
|
提供指定類型(在本例中為 |
|
提供單一資源的連結。 |
|
提供分頁資源的連結。 |
|
為對應的 repository 公開的所有 finder 方法提供連結清單。 |
|
依 |
所有基於搜尋的連結都支援用於分頁和排序的額外參數。有關詳細資訊,請參閱 RepositoryEntityLinks 。還有 linkFor(Class<?> type) ,但它會傳回 Spring HATEOAS LinkBuilder ,這會將您帶回較低層級的 API。請先嘗試使用其他方法。 |