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


    消息一致性处理

    在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端
    调用我们传回去的数据,前端是如何知道我们传回去的数据名称的?
    答:前后端遵循了同一个"协议"。这个协议就是定义一个类,该类的属性前后端协商,根据返回数据的不同,调用该类不同的构造方法,
    并最终将该类返回前端。
    一般前端需要知道操作的成功与失败(flag),后端传回的数据(data),还有需要前端显示的消息(msg),这里定义了下面的类(参考)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    @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;
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    具体的演示,在下面表现层开发展示
    
    • 1

    表现层开发

    表现层开发代码具体如下
    
    • 1
    @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);
        }
    
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    下面基于Restful使用postman测试
    
    • 1

    1.根据ID查单个

    在这里插入图片描述

    2.查所有

    在这里插入图片描述

    3.保存

    在这里插入图片描述

    4.根据id删除

    在这里插入图片描述

    5.更改

    在这里插入图片描述

    从上面测试可以看出,每次的返回结果集都是flag,data,msg三个参数,前端人员可以很容易地取自己所需要的数据。
    仅为学习过程中,知识点总结,如有错误,欢迎指正~
    
    • 1
    • 2
  • 相关阅读:
    R语言STAN贝叶斯线性回归模型分析气候变化影响北半球海冰范围和可视化检查模型收敛性...
    NR Modulation 5
    Nagios的安装和使用
    在 SQL Server 中,可以使用内置函数 NEWID() 来生成一个随机的 GUID(全局唯一标识符)。可以将此 GUID 作为字符串拼接到查询结果中。
    C#和Java,究竟选哪个方向?我只说事实,你自己分析……
    艾美捷重组蛋白酶K,无动物源/AF性质和稳定性
    MySQL学习笔记2
    2. React 的事件和普通的 HTML 事件有什么不同?
    Linux系统编程之进程间通信(IPC)
    【YSYY】DSPE-PEG-Transferrin;DSPE-PEG-TF转铁蛋白的主动靶向介绍;磷脂-聚乙二醇-转铁蛋白
  • 原文地址:https://blog.csdn.net/qq_63524487/article/details/134465760