Spring Data REST(一):两行代码搞定RESTFul

  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的魅力而已。

    1. Spring Data REST本身是一个Spring MVC的应用
       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">
      4.0.0
      white.yu
      spring-data-rest-demo
      war
      0.0.1-SNAPSHOT
      spring-data-rest-demo Maven Webapp
      http://maven.apache.org
      
      
          org.springframework.data
          spring-data-rest-webmvc
          2.5.6.RELEASE
      
      
      
      spring-data-rest-demo
      
      

      这里写图片描述
      可以看到在Maven项目中,我们加入了Spring Data REST,从引入的Jar可以看到其依赖于Spring和Spring MVC,还可以猜测出Spring Data REST提供的REST服务默认返回的JSON合适,并且默认是用的jackSon解析。

    2. Spring MVC配置Spring Data REST
      Spring Data REST的配置定义在RepositoryRestMvcConfiguration类中,其中定义了Spring Data REST的默认配置,在Spring MVC中可以采用继承或者使用@import导入的方式导入Spring Data REST的默认配置,如果需要自定义配置,则需要实现RepositoryRestConfigurer接口 或者继承 RepositoryRestConfigurerAdapter然后重写你自己所需要的方法即可
    3. Spring Boot整合Spring Data REST
      如果你还没用过请看这篇博客Spring Boot环境搭建,在Spring Boot项目中,我只需要引入spring-boot-starter-data-rest的依赖,无需任何配置即可使用
    
        org.springframework.boot
        spring-boot-starter-parent
        1.4.3.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-data-rest
        
    

下一节将开始正式编码,从环境搭建到实现一个企业级RESTFul服务,白鱼一枚,如有不足请大家斧正。


作者: Hi小鱼_White 
链接:https://www.imooc.com/article/15702

你可能感兴趣的:(Spring Data REST(一):两行代码搞定RESTFul)