Spring Data REST入門(一):兩行代碼搞定RESTFul

Spring Data REST入門(一)
Spring Data REST入門(二)
Spring Data REST入門(三)
Spring Data REST入門(四)

  1. 什麼是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服務,白魚一枚,如有不足請大家斧正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章