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
四、封装统一结果返回
为了保证所有接口返回的数据格式一致,减少重复代码编写。我们将对返回结果进行统一处理。
具体返回结果格式如下
{
"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