博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot:Data Rest Service
阅读量:6712 次
发布时间:2019-06-25

本文共 1914 字,大约阅读时间需要 6 分钟。

在文章通过在Controller中引入BookRepository来对外提供REST API。Spring Boot还可以通过spring-boot-starter-data-rest来对外提供REST API,可以免于编写对应的Controller,且具备分页和排序的功能。

实践

  • 在pom文件中添加依赖项
    org.springframework.boot
    spring-boot-starter-data-rest
  • 在包com.test.bookpub.repository下创建AuthorRepository接口,该接口继承自PagingAndSortingRepository,并用@RepositoryRestResource注解修饰。代码如下:
package com.test.bookpub.repository;import com.test.bookpub.domain.Author;import org.springframework.data.repository.PagingAndSortingRepository;import org.springframework.data.rest.core.annotation.RepositoryRestResource;@RepositoryRestResourcepublic interface AuthorRepository extends PagingAndSortingRepository
{}
  • 可以看出,实际编写的代码很少,同样套路,为Publisher和Reviewer也添加类似的接口。
    PublisherRepository的代码如下:
package com.test.bookpub.repository;import com.test.bookpub.domain.Publisher;import org.springframework.data.repository.PagingAndSortingRepository;import org.springframework.data.rest.core.annotation.RepositoryRestResource;@RepositoryRestResourcepublicinterface PublisherRepository    extends PagingAndSortingRepository
{}

ReviewerRepository的代码如下:

package com.test.bookpub.repository;import org.springframework.data.repository.PagingAndSortingRepository;import com.test.bookpub.domain.Publisher.Reviewer;import org.springframework.data.rest.core.annotation.RepositoryRestResource;@RepositoryRestResourcepublic interface ReviewerRepoistory    extends PagingAndSortingRepository
{}
  • 启动应用程序,并访问http://localhost:8080/authors,将会得到如下结果
    1240
    访问author信息

分析

显然,通过继承PagingAndSortingRepository接口,比直接写Controller能提供更多的功能:分页查询和对查询结果排序。

@RepositoryRestResource注解让编程人员可以直接通过repository提供数据接口,在这个“前端负责V和C,后端负责提供数据”的时代,非常方便;并且,可以通过给该注解传入参数来改变URL。

只要在项目的classpath中包含spring-boot-starter-data-rest,同时就包含了spring-hateoas库支持,这个库可以提供——一种数据格式,可以用于描述应用级别的API语义。

参考资料:

转载地址:http://klolo.baihongyu.com/

你可能感兴趣的文章
linux集群时间同步搭建
查看>>
Mysql导出表结构及表数据 mysqldump用法
查看>>
正则表达式利用grep和sed处理日志内容,获取所需的内容
查看>>
C++12.1.4 类的前向声明、不完全类型类
查看>>
K-MAC(mac地址修改器)V1.0.0.6绿色汉化版 for windows
查看>>
什么是 ARC?ios5,xcode 4.2
查看>>
设计模式-组合模式
查看>>
uva 11437 - Triangle Fun
查看>>
SSD卡对mongodb的影响
查看>>
ecshop标签
查看>>
阅读书籍---程序员必读系列
查看>>
C++中的单例模式
查看>>
数据库时间戳设计
查看>>
Retrofit2.0- 源码分析
查看>>
webpack笔记
查看>>
Android常用技能
查看>>
Spring Data JPA REST Query Criteria
查看>>
In FontFamilyFont, unable to find attribute android:font的报错处理
查看>>
网络编程-I/O基础
查看>>
Netty+SpringBoot+FastDFS+Html5实现聊天App详解(一)
查看>>