SSM项目实战-控制层-登录方法实现,使用Postman测试登录功能

1、Result.java

java 复制代码
package 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

java 复制代码
package 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对象返回给前端的理由:

  1. 代码组织:使用Result对象可以将与特定操作相关的数据和错误信息封装起来,使得代码更加模块化和易于理解。这种方式将操作的结果和错误处理代码集中在同一个对象中,降低了代码的复杂性。
  2. 错误处理:通过将错误信息封装在Result对象中,可以更好地处理错误情况。在出现错误时,可以将错误信息存储在Result对象中并返回给前端,这样前端可以根据返回的Result对象进行相应的错误处理和展示。
  3. 扩展性:使用Result对象可以更好地适应未来的需求变化。随着业务的发展和需求的变化,可能需要添加更多的数据或错误信息到返回结果中。通过将数据和错误信息封装在Result对象中,可以方便地扩展该对象以适应未来的需求。
  4. 统一接口:使用Result对象可以定义统一的接口来处理和返回结果。这样前端可以根据统一的接口进行相应的处理,而不需要关心具体的业务逻辑和实现细节。这有助于提高代码的可维护性和可测试性。

总之,使用Result对象返回给前端可以帮助更好地组织和管理代码,提供灵活和可扩展的解决方案,方便错误处理,并提高代码的可维护性和可测试性。

相关推荐
霸道流氓气质17 小时前
Spring AI Alibaba Copilot 项目使用指南
人工智能·spring·copilot
空中湖20 小时前
Spring AI 多模型接入实战:OpenAI、Ollama、通义千问切换只需改配置
java·人工智能·spring
一路向北North21 小时前
Spring Security OAuth2.0(25):分布式系统授权-拓展用户信息
java·后端·spring
41541121 小时前
MyBatis-Plus + PostGIS 实战(四):GeoJSON 序列化与前端地图对接,全局 WKT + 局部 GeoJSON,两种格式优雅共存
java·mybatis·postgis·geojson
@灯神1 天前
SpringAI系列|第1篇:SpringAI概述与快速上手
java·人工智能·spring·ai·ai编程
不才不才不不才1 天前
Spring AI 实战(7):向量库怎么选?PgVector/Redis/Milvus 横向对比
java·人工智能·spring·ai
XS0301061 天前
Spring AI第一课
数据库·人工智能·spring
Full Stack Developme1 天前
MyBatis-Plus(MP)AST 抽象语法树 设计原理
java·tomcat·mybatis
半夜修仙1 天前
Spring集成邮箱功能
java·开发语言·spring boot·spring·rabbitmq·github·maven
宠友信息1 天前
从重复请求到订单同步看内容社区源码的处理思路
java·spring boot·redis·后端·mysql·spring