Spring Data REST
Spring Data REST基于Spring Data的repository之上并自动将其导出为REST资源。目前Spring Data REST支持Spring Data JPA、Spring Data MongoDB、Spring Data Neo4j、Spring Data GemFire、Spring Data Cassandra的 repository 自动转换成REST服务。简单点说,Spring Data REST把我们需要编写的大量REST模版接口做了自动化实现.
利用spring boot + spring-data-rest + spring-data-jpa实现基本的增删改查api
dependencies { compile 'com.alibaba:druid:1.1.17' compile 'org.springframework.boot:spring-boot-starter-data-jpa' compile 'org.springframework.boot:spring-boot-starter-data-rest' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'mysql:mysql-connector-java' }
配置spring boot
server.port = 80 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver spring.datasource.url = jdbc:mysql://192.168.134.128:3306/db_book?serverTimezone=CTT&useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=true spring.datasource.username = root spring.datasource.password = spring.jpa.database=mysql spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
创建Book实体类:
package com.wise.tiger.domain; import javax.persistence.*; import java.time.LocalDate; @Entity @Table(name = "tb_book") public class Book { /** * id */ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; /** * 图书名称 */ @Column(length = 12,nullable = false) private String title; /** * 图书作者 */ @Column(length = 12) private String author; /** * 图书价格 */ private float price; /** * 出版社信息 */ @Column(length = 25) private String publisher; /** * 图书简介 */ @Lob private String intro; /** * 出版日期 */ private LocalDate publishDate = LocalDate.now(); // ******************setter and getter**********// }
创建BookRepository接口
package com.wise.tiger.repository; import com.wise.tiger.domain.Book; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.rest.core.annotation.RepositoryRestResource; @RepositoryRestResource(path = "book") public interface BookRepository extends JpaRepository<Book,Integer> { }
在Repository接口上添加@RepositoryRestResource注解,并添加了一个Path为book。这样即可实现Book实体类的RESTFul风格的所有(基于Repository接口定义的api)接口。没有service层也没有Controller。
启动项目spring boot进行测试
测试
- 发现服务:http://localhost:80/
"http://localhost/book{?page,size,sort}"为资源路径,其中page,size,sort为分页排序参数 - 以GET方式请求所有资源列表http://localhost/book发现book列表为空
- 以POST方式请求资源:http://localhost/book,提交json数据作为参数(可接收application/hal+json或application/json类型数据)添加一本图书信息
可以继续多添加几本图书后再次以GET方式请求 - PUT方式请求修改图书信息
- DELETE请求删除图书信息:http://localhost/book/2
- 分页和排序
分页参数:要在自己的查询方法中使用分页,需要更改方法签名以接受其他可分页参数,并返回一个页面而不是列表。例如,以下查询方法导出到/book/search/titleStartsWith并支持分页:
page:当前页,从0开始,默认值0
size:每页显示记录数,默认值20
可通过参数指定:http://localhost/book/?page=1&size=5
排序参数
sort
格式:http://localhost/book/?page=1&size=5&sort=title,desc
其中title为排序属性名称,desc为降序,升序为asc@RestResource(path = "titleStartsWith", rel = "titleStartsWith") Page findByTitleStartsWith(@Param("title") String title, Pageable p);
- 自定义Controller
相关推荐
Spring Data REST 是基于 Spring Boot 和 Spring Data 项目构建 RESTful API 的强大工具,极大地简化了开发者的工作。在传统的 RESTful 开发中,我们需要手动编写控制器(Controller)来处理 HTTP 请求并映射到业务...
2. **Spring Data REST**: Spring Data REST是Spring Data项目的一部分,它允许开发者快速地将Spring Data Repository接口暴露为RESTful服务。通过简单的注解,如`@RepositoryRestResource`,可以将数据库操作转化为...
综上所述,使用Spring构建RESTful API涉及到从初始配置到具体接口实现的多个步骤,包括Web应用的初始化、REST API的构建、数据转换、异常处理等方面。通过这些技术,开发者可以构建出高效、灵活且易于扩展的API服务...
总结,Spring Boot结合RESTful API设计原则,为开发者提供了快速构建高效、易于维护的Web服务的平台。这个"Spring Boot RESTful API demo"项目展示了如何创建、查询和管理资源的基本步骤。通过实践和扩展,可以实现...
在Java开发领域,Spring Data REST是一个非常重要的框架,它允许开发者快速构建基于RESTful API的数据访问层。这个压缩包文件“Java_学习如何使用Spring Data REST使用基于REST的超媒体数据持久化.zip”包含了关于...
在IT行业中,Spring Data REST是一种流行的技术,它允许开发者快速构建RESTful API,与后端数据存储进行交互。这个项目是专门针对Spring Data REST服务创建的前端应用,使用了现代前端框架Vue.js的第二版(Vue2)...
使用Spring Boot,Spring Data JPA,MySQL构建的RESTful API 安装 本地运行 确保已安装 。 克隆或下载存储库。 $ git clone https://github.com/bizarrecode/rest-api.git $ cd rest-api 编辑数据库配置。 $ ...
在本项目中,"spring boot3+jpa+lombok+mapstruct实现的restful api例子"是一个集成多种技术的示例,旨在展示如何高效地构建RESTful API服务。下面将详细介绍这些关键技术及其相互间的配合。 1. **Spring Boot 3**:...
接着,"SpringBoot-SpringDataJPA-RESTFul-CRUD"文件名揭示了Spring Data JPA的使用。Spring Data JPA是Spring对Java Persistence API(JPA)的封装,提供了一种声明式的方式来进行数据库操作,如CRUD(创建Create、...
在这个项目“Springboot_restful_api”中,开发者使用了SpringBoot来构建RESTful风格的API,这是一种广泛用于现代Web服务的设计模式,允许客户端和服务器之间通过HTTP协议交换信息。 REST(Representational State ...
SpringBoot Data JPA 和 SpringBoot Data REST 是两个非常重要的组件,它们可以帮助开发者快速构建基于Java的Web服务。本文将深入探讨这两个技术,并结合一个实际的Demo来解释它们的工作原理和如何在项目中应用。 ...
SpringData REST模块将Repository自动暴露为RESTful服务,方便前后端分离的开发模式,通过HATEOAS(超媒体作为应用状态的引擎)实现服务的发现和导航。 这个压缩包中的Java代码示例将覆盖以上这些知识点,包括但不...
Spring MVC 是一个强大的Java框架,用于构建Web应用程序,特别是对于基于模型-视图-控制器(MVC)架构的应用。在本文中,我们将深入探讨如何利用Spring MVC创建RESTful服务,这些服务可以处理字符串、JSON和XML数据...
3. **SpringData REST**:能够自动将Repository接口暴露为RESTful服务,使得数据访问可以通过HTTP协议进行,极大地提高了开发效率。 4. **SpringData Commons**:提供了通用的Repository功能,如分页、排序等,是...
1. `pom.xml`:这是Maven项目的配置文件,其中包含了项目依赖,如Spring Boot、Spring Web等,使得我们能够快速构建和运行REST服务。 2. `src/main/java`:源代码目录,包含主要的Java类,如主应用类(`Application....
5. **Spring Data REST**:Spring Data REST模块将Repository暴露为RESTful服务,使得数据可以直接通过HTTP协议进行操作。这对于构建Web服务和微服务架构非常有用。 6. **MongoDB支持**:Spring Data也支持非关系型...
总的来说,"SpringBootDataRestDemo"项目是一个实用的示例,展示了如何使用Spring Boot和Spring Data REST快速构建RESTful服务。通过学习和实践这个项目,开发者可以更好地理解和掌握现代微服务架构中的数据交换技术...
khs-spring-data-rest Spring MVC Restful API 示例实现 Spring MVC REST API Primer 这是一个 Eclipse Maven Web 应用程序。 单击以获取安装和启动说明。
在IT行业中,Spring框架是Java企业级应用开发的首选框架,而RESTful风格的API设计则是现代Web服务的标准。本文将深入探讨Spring框架如何实现RESTful API,以及这些概念在"springRestful小例子"中的具体应用。 首先...
- **Spring Data REST**:与Spring Data REST配合,可以快速构建RESTful API,暴露Repository接口供HTTP客户端使用。 **4. 进阶话题** - **存储过程支持**:Spring Data JPA可以通过@EntityGraph注解来优化加载策略...