设为首页 加入收藏

TOP

快速搭建SpringBoot3.x项目(四)
2023-09-23 15:44:18 】 浏览:191
Tags:SpringBoot3.x 项目
cType="VARCHAR"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> </resultMap> <!--查询所有用户信息--> <select id="querySyserList" resultMap="SysUserMap"> select * from sys_user </select> </mapper>

3.4 新建service 接口及实现类

Service是MVC架构中负责处理业务逻辑的组件。它封装了业务逻辑的实现细节,提供给Controller调用。Service层通常包含一系列方法,用于处理各种业务需求,如数据处理、事务管理、业务规则校验等。

SysUserService

public interface SysUserService {
    List<SysUser> querySyserList();
}

SysUserServiceImpl

  • @Service :标识这个类是服务层(Service)的组件,用于实现业务逻辑的封装和管理。以便Spring容器能够扫描并将其实例化为一个Bean,并将其纳入到Spring的管理中。通过@Service注解,可以方便地进行依赖注入、事务管理等操作
  • @Resource :标识一个类或对象需要被注入到另一个类中,用于实现依赖注入
@Service
public class SysUserServiceImpl implements SysUserService {

   @Resource
    private SysUserMapper  userMapper;
    @Override
    public List<SysUser> querySyserList() {
        return userMapper.querySyserList();
    }
}

3.5 创建Controller

Controller是MVC架构中负责接收用户请求并处理的组件。它接收来自用户的请求,并根据请求的内容调用相应的Service方法进行业务处理,然后返回结果给用户。Controller通常负责路由请求、参数验证、调用Service等操作

SysUserController

  • @RestController:用于标识一个类是RESTful风格的控制器,结合了@Controller和@ResponseBody注解的功能,用于处理HTTP请求并返回RESTful风格的响应
  • @RequestMapping:用于映射HTTP请求到控制器的处理方法,指定请求的URL路径和请求方法
  • @Autowired:用于自动装配依赖对象
@RestController
@RequestMapping("/sysUser")
public class SysUserController {

    @Autowired
    private SysUserService sysUserService;

    @RequestMapping(value = "/querySysUser",method = RequestMethod.GET)
    public List<SysUser> querySysUser(){
       return sysUserService.querySyserList();
    }
}

到此我们三大组件的代码都写完了,接下来我们来看看我们写好的接口

浏览器地址栏输入:http://localhost:8080/sysUser/querySysUser

json数据返回

四、封装统一结果返回

为了保证所有接口返回的数据格式一致,减少重复代码编写。我们将对返回结果进行统一处理。

具体返回结果格式如下

{
  "code": 200, // 状态码,表示请求的处理结果
  "message": "请求成功", // 状态消息,对请求结果的简要描述
  "data": { // 数据对象,用于存储具体的返回数据
    "key1": "value1",
    "key2": "value2"
  }
}
  • code :表示请求的处理结果,一般采用HTTP状态码或自定义的业务状态码
  • message :对请求结果的简要描述,通常是一个字符串
  • data :用于存储具体的返回数据,可以是一个对象、数组或其他类型的数据

4.1 定义 IResultCode 的接口

它位于 com.xiezhr.common.result 包中,可以由不同的类来实现,实现一致且统一的结果码和消息的处理和返回

package com.xiezhr.common.result;

public interface IResultCode {
    String getCode();
    String getMsg();
}
  • getCode() : 这个方法返回一个 String 类型的结果码
  • getMsg() : 这个方法返回一个 String 类型的结果消息

4.2 定义了一个枚举类 ResultCode

定义了一个枚举类 ResultCode ,它实现了 IResultCode 接口,并包含了一些常见的响应码和对应的消息。

@AllArgsConstructor
@NoArgsConstructor
public enum ResultCode implements IResultCode, Serializable {
    SUCCESS("200","成功"),
    NOT_FOUND("404","未找到"),
    INTERNAL_SERVER_ERROR("500","服务器内部错误"),    
    ;
    private String code;
    private String msg;
    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}

定义系统中常见的响应码和对应的消息,用于表示不同的业务场景或操作的执行结果

每个枚举常量都包含一个 code 和一个 msg ,分别表示响应码和消息内容

枚举常量包括了一些常见的响应码,如 SUCCESS 表示成功, INTERNAL_SERVER_ERROR 服务器内部错误, NOT_FOUND 表示未找到

4.3 定义统一响应结构体

定义了一个名为 Result 的类,用于表示统一的响应结构体

@Data
publ
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 4/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇JDK8升级JDK11最全实践干货来了 下一篇快速搭建linux centos 部署环境及..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目