Spring Data REST入門(一)
Spring Data REST入門(二)
Spring Data REST入門(三)
Spring Data REST入門(四)
- 什麼是Spring Data REST
Spring Data REST是基於Spring Data的repository之上,可以把 repository 自動輸出爲REST資源,目前支持Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data GemFire、Spring Data Cassandra的 repository 自動轉換成REST服務。注意是自動。簡單點說,Spring Data REST把我們需要編寫的大量REST模版接口做了自動化實現。舉個例子,比如你寫了如下代碼
@RepositoryRestResource(path="user")
public interface UserRepository extends JpaRepository<User, Long>{
}
自定了一個接口UserRepository 繼承了JpaRepository,其中泛型中的User是實體類,Long是主鍵類型,在類的頭部加上了一個 @RepositoryRestResource註解,並添加了一個Path爲user。兩行代碼即可實現User實體類的RESTFul風格的所有接口,比如發送GET請求到127.0.0.1/api/user,返回JSON格式的數據集合(注:”api”爲統一前綴),並且每個Item都提供了相應的Detail URI
簡單分頁查詢127.0.0.1:8080/api/user?page=2&size=2
這裏簡單的傳入了頁碼也頁數,Spring Data REST爲我們自動做了分頁功能,是不是很炫?還沒完,注意下半部分紅框圈住的內容,這裏Spring Data REST 還爲我們返回了上一頁,下一頁,以及最後一頁的URI。然而到目前爲止你只寫了兩行代碼,而且Spring Data REST的功能還不止如此,這裏只是簡單展現下Spring Data REST的魅力而已。
2. Spring Data REST本身是一個Spring MVC的應用
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>white.yu</groupId>
<artifactId>spring-data-rest-demo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>spring-data-rest-demo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>2.5.6.RELEASE</version>
</dependency>
</dependencies>
<build>
<finalName>spring-data-rest-demo</finalName>
</build>
</project>
可以看到在Maven項目中,我們加入了Spring Data REST,從引入的Jar可以看到其依賴於Spring和Spring MVC,還可以猜測出Spring Data REST提供的REST服務默認返回的JSON格式,並且默認是用的jackSon解析。
3. Spring MVC配置Spring Data REST
Spring Data REST的配置定義在RepositoryRestMvcConfiguration類中,其中定義了Spring Data REST的默認配置,在Spring MVC中可以採用繼承或者使用@import導入的方式導入Spring Data REST的默認配置,如果需要自定義配置,則需要實現RepositoryRestConfigurer接口 或者繼承 RepositoryRestConfigurerAdapter然後重寫你自己所需要的方法即可
4. Spring Boot整合Spring Data REST
如果你還沒用過請看這篇博客Spring Boot環境搭建,在Spring Boot項目中,我只需要引入spring-boot-starter-data-rest的依賴,無需任何配置即可使用
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
</dependencies>
下一節將開始正式編碼,從環境搭建到實現一個企業級RESTFul服務,白魚一枚,如有不足請大家斧正。