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

基于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 {

    @Autowired
    private BookService bookService;

    @GetMapping
    public R getAll(){
        return new R(true,bookService.getAll());
    }

    @GetMapping("/{id}")
    public R getById(@PathVariable Integer id){
        return new R(true,bookService.getById(id));
    }

    @PostMapping
    public R save(@RequestBody Book book) throws IOException {
        Boolean flag = bookService.save(book);
        return new R(flag,flag?"保存成功^_^":"保存失败-_-、");
    }

    @PutMapping
    public 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){
        //解决删除最后一页,最后一条数据时BUG
        IPage<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.kler.cn/news/136341.html

相关文章:

  • SMT 生产可视化:提升电子组装流程效率
  • 水轮发电机油压自动化控制系统解决方案介绍
  • OceanBase 首席科学家阳振坤:大模型时代的数据库思考
  • 日常记录,使用springboot,vue2,easyexcel使实现字段的匹配导入
  • opencv学习笔记(3):图像和视频的读取(C++)
  • 数据类型【MySQL】
  • react经典面试题解析
  • BUG:编写springboot单元测试,自动注入实体类报空指针异常
  • Linux本地WBO创作白板部署与远程访问
  • [软件安装]anaconda安装
  • openfeign整合sentinel出现异常
  • Python-正则表达式使用
  • 如何使用http来获取thingsbord中的设备数据
  • 使用Jupyter Notebook调试PySpark程序错误总结
  • 【数据结构】C语言实现带头双向循环链表万字详解(附完整运行代码)
  • Leetcode刷题详解——删除并获得点数
  • 2216.美化数组的最少删除数
  • Linux:系统基本信息扫描(2)
  • 音视频同步笔记 - 以音频时间为基
  • 华为---OSPF网络虚连接(Virtual Link)简介及示例配置
  • 腾讯云轻量数据库1核1G性能测评、租用费用和详细介绍
  • 【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷D
  • c语言从入门到实战——回调函数与qsort的讲解和模拟实现
  • 记录一次较为完整的Jenkins发布流程
  • JVM虚拟机:通过日志学习PS+PO垃圾回收器
  • 【NI-RIO入门】CompactRIO介绍及环境安装