入門

Spring Data REST 本身就是一個 Spring MVC 應用,其設計旨在能夠輕鬆整合到您現有的 Spring MVC 應用中。現有(或未來)的服務層可以與 Spring Data REST 並行執行,只需少量額外工作。

將 Spring Data REST 新增到 Spring Boot 專案

最簡單的入門方法是構建一個 Spring Boot 應用,因為 Spring Boot 提供了 Spring Data REST starter 並使用自動配置。以下示例展示瞭如何使用 Gradle 將 Spring Data REST 包含到 Spring Boot 專案中。

示例 1. 使用 Gradle 配置 Spring Boot
dependencies {
  ...
  compile("org.springframework.boot:spring-boot-starter-data-rest")
  ...
}

以下示例展示瞭如何使用 Maven 將 Spring Data REST 包含到 Spring Boot 專案中。

示例 2. 使用 Maven 配置 Spring Boot
<dependencies>
  ...
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-rest</artifactId>
  </dependency>
  ...
</dependencies>
如果您使用 Spring Boot Gradle 外掛Spring Boot Maven 外掛,則無需提供版本號。

當您使用 Spring Boot 時,Spring Data REST 會自動配置。

將 Spring Data REST 新增到 Gradle 專案

要將 Spring Data REST 新增到基於 Gradle 的專案,請將 spring-data-rest-webmvc artifact 新增到您的編譯時依賴項中,如下所示:

dependencies {
  … other project dependencies
  compile("org.springframework.data:spring-data-rest-webmvc:4.4.5")
}

將 Spring Data REST 新增到 Maven 專案

要將 Spring Data REST 新增到基於 Maven 的專案,請將 spring-data-rest-webmvc artifact 新增到您的編譯時依賴項中,如下所示:

<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-rest-webmvc</artifactId>
  <version>4.4.5</version>
</dependency>

配置 Spring Data REST

要將 Spring Data REST 安裝在您現有 Spring MVC 應用旁邊,您需要包含相應的 MVC 配置。Spring Data REST 的配置定義在一個名為 RepositoryRestMvcConfiguration 的類中,您可以將該類匯入到您的應用配置中。

如果您使用 Spring Boot 的自動配置,則無需此步驟。當您包含 spring-boot-starter-data-rest 並在依賴項列表中標記您的應用為 @SpringBootApplication@EnableAutoConfiguration 時,Spring Boot 會自動啟用 Spring Data REST。

要自定義配置,請註冊一個 RepositoryRestConfigurer Bean,並實現或覆蓋與您的用例相關的 configure… 方法。

確保您也為您使用的儲存配置了 Spring Data 倉庫。有關詳細資訊,請參閱相應 Spring Data 模組的參考文件。

Spring Data REST 的基本設定

本節介紹了配置 Spring Data REST 應用時可以操作的基本設定,包括:

設定倉庫檢測策略

Spring Data REST 使用 RepositoryDetectionStrategy 來確定倉庫是否作為 REST 資源匯出。RepositoryDiscoveryStrategies 列舉包含以下值:

表 1. 倉庫檢測策略

名稱

描述

DEFAULT

暴露所有公共倉庫介面,但會考慮 @(Repository)RestResourceexported 標誌。

ALL

暴露所有倉庫,不受型別可見性和註解的影響。

ANNOTATED

僅暴露使用 @(Repository)RestResource 註解的倉庫,除非其 exported 標誌設定為 false

VISIBILITY

僅暴露使用註解的公共倉庫。

更改基本 URI

預設情況下,Spring Data REST 在根 URI '/' 提供 REST 資源。有多種方法可以更改基本路徑。

使用 Spring Boot 1.2 及更高版本,您可以透過在 application.properties 中設定一個屬性來更改基本 URI,如下所示:

spring.data.rest.basePath=/api

使用 Spring Boot 1.1 或更早版本,或者如果您未使用 Spring Boot,您可以執行以下操作:

@Configuration
class CustomRestMvcConfiguration {

  @Bean
  public RepositoryRestConfigurer repositoryRestConfigurer() {

    return new RepositoryRestConfigurer() {

      @Override
      public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
        config.setBasePath("/api");
      }
    };
  }
}

另外,您可以將 RepositoryRestConfigurer 的自定義實現註冊為 Spring Bean,並確保它能被元件掃描檢測到,如下所示:

@Component
public class CustomizedRestMvcConfiguration extends RepositoryRestConfigurer {

  @Override
  public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config, CorsRegistry cors) {
    config.setBasePath("/api");
  }
}

上述兩種方法都將基本路徑更改為 /api

更改其他 Spring Data REST 屬性

您可以修改以下屬性:

表 2. Spring Boot 可配置屬性

屬性

描述

basePath

Spring Data REST 的根 URI

defaultPageSize

更改單個頁面中提供的專案數量的預設值

maxPageSize

更改單個頁面中的最大專案數量

pageParamName

更改用於選擇頁面的查詢引數名稱

limitParamName

更改用於指定頁面顯示專案數量的查詢引數名稱

sortParamName

更改用於排序的查詢引數名稱

defaultMediaType

更改未指定時使用的預設媒體型別

returnBodyOnCreate

更改建立新實體時是否應返回響應體

returnBodyOnUpdate

更改更新實體時是否應返回響應體

啟動應用

至此,您還必須配置您的主要資料儲存。

Spring Data REST 官方支援:

以下入門指南可以幫助您快速啟動和執行:

這些連結的指南介紹瞭如何新增相關資料儲存的依賴項、配置域物件以及定義倉庫。

您可以將您的應用作為 Spring Boot 應用執行(使用前面顯示的連結),或者將其配置為經典的 Spring MVC 應用。

通常,Spring Data REST 不會向給定的資料儲存新增功能。這意味著,根據定義,它應該與任何支援倉庫程式設計模型的 Spring Data 專案一起工作。上面列出的資料儲存是那些我們編寫了整合測試來驗證 Spring Data REST 與之相容的資料儲存。

從這裡開始,您可以使用各種選項自定義 Spring Data REST