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

消息一致性处理

复制代码
在后端执行完相应的操作后,我们需要将执行操作后的结果与数据返回前端,前端
调用我们传回去的数据,前端是如何知道我们传回去的数据名称的?
答:前后端遵循了同一个"协议"。这个协议就是定义一个类,该类的属性前后端协商,根据返回数据的不同,调用该类不同的构造方法,
并最终将该类返回前端。
一般前端需要知道操作的成功与失败(flag),后端传回的数据(data),还有需要前端显示的消息(msg),这里定义了下面的类(参考)
java 复制代码
@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;
    }
}
复制代码
具体的演示,在下面表现层开发展示

表现层开发

复制代码
表现层开发代码具体如下
java 复制代码
@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三个参数,前端人员可以很容易地取自己所需要的数据。
仅为学习过程中,知识点总结,如有错误,欢迎指正~
相关推荐
骇客野人几秒前
Springboot 的 配置文件 application.yml 和 bootrap.yml 的由来和作用
java·spring boot·后端
岁月宁静15 分钟前
三、《从零手撸 Agent》 · system prompt 与核心参数:调好你的旋钮
后端·python·agent
xcl092517 分钟前
幼儿托管系统开发实战:从需求分析到部署上线全指南
java·spring boot·需求分析
步行cgn21 分钟前
Spring Boot 中的 YAML 完全指南
android·spring boot·firefox
bcbnb32 分钟前
Flutter-Notebook代码混淆:Android与iOS平台安全配置
后端·ios
泡海椒43 分钟前
SpringBoot 集成 JQuick-Curl:Spring 环境完整接入教程,第三方接口调用别再到处手写模板类
后端
落木萧萧82543 分钟前
MyBatis 关联查询的四种写法,为什么最后都变回了手写 XML
java·数据库·后端
csdn2015_44 分钟前
java springboot项目,接收到的参数多个逗号
java·开发语言·spring boot
cui_hao_nan1 小时前
Spring AOP 自调用、代理与 private 方法引发的诡异 NPE
java·后端·spring·ai开发
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 简单开发 阅读笔记 39
spring boot·笔记·mybatis