当前位置: 首页 > news >正文

基于SpringBoot的SSMP整合案例(消息一致性处理与表现层开发)

消息一致性处理

在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端
调用我们传回去的数据,前端是如何知道我们传回去的数据名称的?
答:前后端遵循了同一个"协议"。这个协议就是定义一个类,该类的属性前后端协商,根据返回数据的不同,调用该类不同的构造方法,
并最终将该类返回前端。
一般前端需要知道操作的成功与失败(flag),后端传回的数据(data),还有需要前端显示的消息(msg),这里定义了下面的类(参考)
@Data
public class R {private Boolean flag;private Object data;private String msg;public R() {}//    用于删改public R(Boolean flag) {this.flag = flag;}//    用于异常情况public R(String msg) {this.flag = false;this.msg = msg;}//    用于查询操作public R(Boolean flag, Object data) {this.flag = flag;this.data = data;}//    用于增,并给前端发送结果public R(Boolean flag, String msg){this.flag = flag;this.msg = msg;}
}
具体的演示,在下面表现层开发展示

表现层开发

表现层开发代码具体如下
@RestController
@RequestMapping("/books")
public class BookController {@Autowiredprivate BookService bookService;@GetMappingpublic R getAll(){return new R(true,bookService.getAll());}@GetMapping("/{id}")public R getById(@PathVariable Integer id){return new R(true,bookService.getById(id));}@PostMappingpublic R save(@RequestBody Book book) throws IOException {Boolean flag = bookService.save(book);return new R(flag,flag?"保存成功^_^":"保存失败-_-、");}@PutMappingpublic R update(@RequestBody Book book){return new R(bookService.update(book));}@DeleteMapping("/{id}")public R delete(@PathVariable Integer id){return new R(bookService.delete(id));}@GetMapping("/{currentPage}/{pageSize}")public R getPage(@PathVariable Integer currentPage,@PathVariable Integer pageSize,Book book){//解决删除最后一页,最后一条数据时BUGIPage<Book> page = bookService.getByPage(currentPage,pageSize,book);if (currentPage > page.getPages())page = bookService.getByPage((int)page.getPages(),pageSize,book);return new R(true,page);}}
下面基于Restful使用postman测试

1.根据ID查单个

在这里插入图片描述

2.查所有

在这里插入图片描述

3.保存

在这里插入图片描述

4.根据id删除

在这里插入图片描述

5.更改

在这里插入图片描述

从上面测试可以看出,每次的返回结果集都是flag,data,msg三个参数,前端人员可以很容易地取自己所需要的数据。
仅为学习过程中,知识点总结,如有错误,欢迎指正~
http://www.lryc.cn/news/233838.html

相关文章:

  • c#之反射详解
  • synchronized jvm实现思考
  • 【hive基础】hive常见操作速查
  • 2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A
  • 基于51单片机电子钟温度计数码显示设计( proteus仿真+程序+设计报告+讲解视频)
  • jenkins+centos7上传发布net6+gitlab
  • python趣味编程-5分钟实现一个F1 赛车公路游戏(含源码、步骤讲解)
  • Kafka快速入门
  • 基于Pytorch的从零开始的目标检测
  • interview review
  • layui表头多出一列(已解决)
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • Java源码分析:Guava之不可变集合ImmutableMap的源码分析
  • 详解自动化测试之 Selenium
  • vue监听对象属性值变化
  • Unicode编码的emoji表情如何在前端页面展示(未完成)
  • 基于SSM的设备配件管理和设备检修系统
  • 鸿蒙开发|鸿蒙系统项目开发前的准备工作
  • Evil靶场
  • 第77题. 组合
  • 读书笔记:彼得·德鲁克《认识管理》第21章 企业与政府
  • C/C++疫情集中隔离 2021年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • 052-第三代软件开发-系统监测
  • 向量矩阵范数pytorch
  • NVIDIA Jetson OTA升级
  • 【算法】算法题-20231118
  • 某60区块链安全之整数溢出漏洞实战学习记录
  • 图数据库Neo4J 中文分词查询及全文检索(建立全文索引)
  • element-china-area-data使用问题
  • 248: vue+openlayers 以静态图片作为底图,并在上面绘制矢量多边形