首页 > 其他分享 >SSMP整合案例第四步 表现层controller开发及用Result进行统一消息处理

SSMP整合案例第四步 表现层controller开发及用Result进行统一消息处理

时间:2024-05-30 12:04:19浏览次数:17  
标签:return SSMP id controller 及用 Result userService import public

表现层开发

数据层和业务层都做完了

我们首先得创建我们表现层对应的包和类

Controller层 控制层

先写的是查询所有信息

控制层调用业务层

使用的是依赖注入的方法

package com.bigdata1421.ssmp.controller;

import com.bigdata1421.ssmp.domain.User;
import com.bigdata1421.ssmp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    //注入业务层
    @Autowired
    private UserService userService;

    //规定请求方式
    @GetMapping
    public List<User> getAll(){
        return userService.geTAll();
    }

    @PostMapping
    public Boolean save(@RequestBody User user){
        return userService.save(user);
    }

    @PutMapping
    public Boolean update(@RequestBody User user){
        return userService.update(user);
    }

    @DeleteMapping("{id}")
    public Boolean delete(@PathVariable Integer id){
        return userService.delete(id);
    }

    @GetMapping("{id}")
    public  User getById(@PathVariable Integer id){
        return userService.getById(id);
    }

}

post是更新数据,put是替换数据

改写

我们通过save update异步提交发送的话参数是通过请求体传json数据过来

@RequestBody注解 代表请求体参数

删除和查单个 我们一般是传单个参数过来

我们使用路径参数传参

用postman发起请求

对应的语句

数据库中已经成功写入数据

查看一下全部

试一下查看刚才添加的数据

查看一下

删掉

这样就删掉了

回顾一下

设置公共的请求路径前缀 users

之后用postman测试数据

完善分页查询

在接口里添加方法

接口的实现类重写接口的方法

在控制层书写代码

用postman测试接口

发送请求

总结

表现层消息统一处理

但是我们返回给前端的数据

有各种各样的

比如说json数组 json 布尔类型的数值

我们得想办法和前端配合在一起工作

我们要修改数据

用data封装数据

但是还是要处理null

查询id

不存在 返回的是null

查询过程中抛出异常 catch中返回null

所以我们要告诉前端人员我们查询成功还是失败

前后端数据协议

就是为了后端发送给前端时数据统一

协议联调

定义Result类 R类

package com.bigdata1421.ssmp.controller.utils;

import lombok.Data;

@Data
public class Result {
    private Boolean flag;
    private Object data;
    public Result(){};
    public Result(Boolean flag){
        this.flag=flag;
    }
    public Result(Boolean flag,Object data){
        this.flag=flag;
        this.data=data;
    }

}

修改控制层的实现类

先把返回值类型都换成Result

先书写带参构造 无参构造

因为一般的话

接收的参数的是boolean 然后数据是null

改写

在书写其他的构造方法

然后去改

package com.bigdata1421.ssmp.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bigdata1421.ssmp.controller.utils.Result;
import com.bigdata1421.ssmp.domain.User;
import com.bigdata1421.ssmp.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    //注入业务层
    @Autowired
    private UserService userService;

    //规定请求方式
    @GetMapping
    public List<User> getAll(){
        return userService.geTAll();
    }

    @PostMapping
    public Result save(@RequestBody User user){
        return new Result(userService.save(user));
    }

    @PutMapping
    public Result update(@RequestBody User user){
        return new Result(userService.update(user));
    }

    @DeleteMapping("{id}")
    public Result delete(@PathVariable Integer id){
        return new Result(true,userService.delete(id));
    }

    @GetMapping("{id}")
    public  Result getById(@PathVariable Integer id){
        return new Result(true,userService.getById(id));
    }

    @GetMapping("{currentPage}/{pageSize}")
    public Result getPage(@PathVariable int currentPage ,@PathVariable int pageSize){
        return new Result(true,userService.getPage(currentPage,pageSize));
    }

}

运行后 我们还是通过postman去测试

返回了统一响应结果

统一表现层的数据模式

设计表现层的返回结果数据模型

小结

这是后端到前端的数据协议

标签:return,SSMP,id,controller,及用,Result,userService,import,public
From: https://blog.csdn.net/qq_30500575/article/details/139320155

相关文章

  • controller层
     所花时间(包括上课): 1 h左右代码量(行): 200  左右搏客量(篇):1了解到的知识点: controller层接口实现备注(其他): packagecom.leap.jixianceshiboot.controller;importcom.leap.jixianceshiboot.entity.Policy;importcom.leap.jixianceshiboot.......
  • docker数据卷的作用及用法
    一、数据卷的作用解决容器与数据耦合的问题1.当我们要进入到docker容器内部修改代码时,很不方便,不便于修改。2.数据不可复用,在容器内的修改对外是不可见的,所有修改对新创建的容器是不可复用的。3.升级维护困难,数据在容器内,当我们要升级容器必然要删除旧容器,所有数据也都跟着删除了......
  • 【故障诊断】用于轴承故障诊断的性能增强时变形态滤波方法及用于轴承断层特征提取的增
    ......
  • USB EHCI(Enhanced Host Controller Interface)与OHCI(Open Host Controller Interface)
    USBEHCI(EnhancedHostControllerInterface)与OHCI(OpenHostControllerInterface)在多个方面存在显著的差异,以下是对这些差异的分点表示和归纳:1.**接口标准与版本**:-EHCI:这是Intel主导的USB2.0的接口标准。它专门描述了一个通用串行总线(USB)2.0版的主机控制器的寄存器......
  • springcloud和dubbo分别调用controller层和service层是两种微服务架构的最大区别?
    许多讨论微服务架构中springcloud和dubbo区别的文章中,主要强调dubbo只是springcloud的子集,只是服务治理工具,不是完整解决方案。但是看了一下两者,感觉完全无法兼容,理念完全不同啊。springboot开发的典型应用目录如下:分Controller、service接口、Serviceimpl实现、dao等层次。1、s......
  • mapper,service,controller,entity之间的关系
    目录一、学到了二、错误与纠正一、学到了1.mapper(repository):数据访问层,负责与数据库进行交互,执行数据库的操作。定义了各种数据库操作方法的接口,并由ORM框架自动实现主要职能是执行数据库的增删改查,并将数据库操作结果返回给上层的service。2.service:业务逻辑层,处理逻......
  • lua语言特性及用途
    Lua是一个小巧的脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C......
  • Mixing 3800/2800 APs with 9120 APs on 9800 controllers?
    Don'tmixx800-seriesAPswithCatalystAPs.  x800-serieshaveaMARVALradiochipsetandCiscohasbeentryinghardto"tame"thebugsassociatewiththem. Ibelievetheyhavealready"givenup"tryingtofixthesebugsonAire......
  • springboot使controller异步调用
    调用controller方法,遇到操作时间很长的情况下,不希望前端一直等待操作,而希望前端立马接收到操作启动的反馈,而真正的操作在后端执行,需要用到异步调用的方法。实现步骤如下:一、配置异步支持:首先,在应用程序的主类上添加@EnableAsync注解,以启用异步支持importorg.springfram......
  • Windows Active Directory(AD)域控制器(Domain Controller, DC)在企业IT管理中扮演着至关
    WindowsActiveDirectory(AD)域控制器(DomainController,DC)在企业IT管理中扮演着至关重要的角色,其优势、好处和作用体现在以下几个方面:优势与好处:集中化管理:权限与资源管理集中化,便于统一配置和控制,减少了管理的复杂度和成本。简化用户和计算机账户的创建、修改和删除......