1、Result.java
javapackage com.atguigu.schedule.dto; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor @AllArgsConstructor public class Result { private Integer code; private Boolean flag; private Object data; private String msg; public static Result ok(Object data) { return new Result(200, true, data, null); } public static Result fail(String msg) { return new Result(500, false, null, msg); } }2、SysUserController.java
javapackage com.atguigu.schedule.controller; import com.atguigu.schedule.dto.Result; import com.atguigu.schedule.pojo.SysUser; import com.atguigu.schedule.service.SysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("sysUser") @CrossOrigin public class SysUserController { @Autowired private SysUserService sysUserService; @PostMapping public Result login(@RequestBody SysUser sysUser) { SysUser sysUserFromDB = sysUserService.getSysUser(sysUser); if (sysUserFromDB != null) { return Result.ok(sysUserFromDB); } else { return Result.fail("登录失败!"); } } }3、为什么要使用Result?
在Java中,使用Result对象返回给前端的主要原因是更好地组织和管理代码,以及提供更加灵活和可扩展的解决方案。
下面是一些使用Result对象返回给前端的理由:
- 代码组织:使用Result对象可以将与特定操作相关的数据和错误信息封装起来,使得代码更加模块化和易于理解。这种方式将操作的结果和错误处理代码集中在同一个对象中,降低了代码的复杂性。
- 错误处理:通过将错误信息封装在Result对象中,可以更好地处理错误情况。在出现错误时,可以将错误信息存储在Result对象中并返回给前端,这样前端可以根据返回的Result对象进行相应的错误处理和展示。
- 扩展性:使用Result对象可以更好地适应未来的需求变化。随着业务的发展和需求的变化,可能需要添加更多的数据或错误信息到返回结果中。通过将数据和错误信息封装在Result对象中,可以方便地扩展该对象以适应未来的需求。
- 统一接口:使用Result对象可以定义统一的接口来处理和返回结果。这样前端可以根据统一的接口进行相应的处理,而不需要关心具体的业务逻辑和实现细节。这有助于提高代码的可维护性和可测试性。
总之,使用Result对象返回给前端可以帮助更好地组织和管理代码,提供灵活和可扩展的解决方案,方便错误处理,并提高代码的可维护性和可测试性。
SSM项目实战-控制层-登录方法实现,使用Postman测试登录功能
丁总学Java2023-12-08 17:16
相关推荐
daidaidaiyu7 小时前
Spring IOC 源码学习 声明式事务的入口点小王不爱笑1328 小时前
MyBatis 执行流程源码级深度解析:从 Mapper 接口到 SQL 执行的全链路逻辑弹简特9 小时前
【JavaEE18-后端部分】 MyBatis 入门第二篇:使用注解完成增删改查(含有参数传递底层原理)小王不爱笑13210 小时前
SpringBoot 自动装配深度解析:从底层原理到自定义 starter 实战(含源码断点调试)森林里的程序猿猿10 小时前
Spring Aop底层源码实现(一)攒了一袋星辰11 小时前
SequenceGenerator高并发有序顺序号生成中间件 - 架构设计文档大傻^12 小时前
LangChain4j Spring Boot Starter:自动配置与声明式 Bean 管理yhole12 小时前
springboot 修复 Spring Framework 特定条件下目录遍历漏洞(CVE-2024-38819)大傻^12 小时前
Spring AI 2.0 MCP 协议实战:Model Context Protocol SDK 与多服务器编排l软件定制开发工作室12 小时前
Spring开发系列教程(34)——打包Spring Boot应用
