继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

Coley_5
关注TA
已关注
手记 86
粉丝 8548
获赞 6550
  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服务

打开App,阅读手记
15人推荐
发表评论
随时随地看视频慕课网APP