首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >统一封装类详解:Result

统一封装类详解:Result

作者头像
GeekLiHua
发布于 2025-01-21 08:36:05
发布于 2025-01-21 08:36:05
40600
代码可运行
举报
文章被收录于专栏:JavaJava
运行总次数:0
代码可运行

统一封装类详解:Result

在大多数项目中,为了统一返回格式和处理结果,我们经常会定义一个通用的结果封装类。上述代码展示了一个名为Result的泛型类,用于封装接口返回的结果。

类结构

该类具有以下属性:

  • code(int):状态码,表示接口调用的执行情况;
  • message(String):提示信息,对接口调用结果进行描述;
  • data(T):泛型数据,表示接口调用返回的数据。

同时,它提供了带参构造函数、无参构造函数以及三个相关的静态方法,并使用@Data@NoArgsConstructor@AllArgsConstructor注解简化开发。

构造函数

  1. public Result(T data)构造函数:
    • 用于响应成功执行的情况,默认的状态码为200(成功);
    • 接收一个类型为T的参数data,表示接口调用返回的数据。
  2. public Result(T data, boolean success, String message)构造函数:
    • success参数为true时,表示执行成功,状态码为200(成功)、提示信息为"success";
    • success参数为false时,表示执行失败,可以自定义错误的状态码和提示信息;
    • 接收一个类型为T的参数data,表示接口调用返回的数据;
    • 接收一个类型为boolean的参数success,表示执行的成功与否;
    • 接收一个类型为String的参数message,作为失败时的提示信息。
  3. public Result(int code, String message)构造函数:
    • 用于自定义状态码和提示信息的情况,例如特定的错误场景;
    • 接收一个类型为int的参数code,表示自定义的状态码;
    • 接收一个类型为String的参数message,表示接口调用结果的描述信息。

静态方法

该封装类还提供了两个静态方法:

  1. public static <T> Result<T> fail(String message)
    • 返回一个执行失败的结果对象;
    • 接收一个类型为String的参数message,表示失败时的提示信息。
  2. public static <T> Result<T> fail(int code, String message)
    • 返回一个执行失败的结果对象,并可以自定义状态码和提示信息;
    • 接收一个类型为int的参数code,表示自定义的状态码;
    • 接收一个类型为String的参数message,表示接口调用结果的描述信息。

完整代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {

    private int code;
    private String message;
    private T data;

    public Result(T data) {
        this.code = 200;
        this.message = "success";
        this.data = data;
    }

    public Result(T data, boolean success, String message) {
        if (success) {
            this.code = 200;
            this.message = "success";
        } else {
            this.code = 500;
            this.message = message;
        }
        this.data = data;
    }

    public Result(int code, String message) {
        this.code = code;
        this.message = message;
        this.data = null;
    }

    public static <T> Result<T> success(T data) {
        return new Result<>(data);
    }

    public static <T> Result<T> fail(String message) {
        return new Result<>(500, message);
    }

    public static <T> Result<T> fail(int code, String message) {
        return new Result<>(code, message);
    }
}

使用示例

以下是一些使用示例,展示了如何使用Result封装类来处理接口返回结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@GetMapping("/user/{id}")
public Result<User> getUserById(@PathVariable int id) {
    User user = userService.getUserById(id);
    if (user == null) {
        return Result.fail("User not found");
    }
    return new Result<>(user);
}

@PostMapping("/login")
public Result<String> login(@RequestBody LoginRequest request) {
    boolean isValid = userService.authenticate(request.getUsername(), request.getPassword());
    if (isValid) {
        // 返回登录成功的结果
        return new Result<>("Login successful");
    } else {
        // 返回登录失败的结果,并自定义错误状态码和提示信息
        return Result.fail(401, "Invalid username or password");
    }
}

你可以根据项目需求,在Result封装类中加入更多的方法和功能,以满足特定的业务需求。使用该类可以统一接口返回的数据格式和处理逻辑,提高代码的可读性和维护性,同时减少重复劳动。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot3怎么做统一结果封装?
在开发基于Spring Boot的应用程序时,统一结果封装是一个非常有用的技术,特别是在生产项目中,它可以帮助我们每个团队成员输出统一的结果格式,提高代码的可维护性和可读性。
阿珍
2024/08/01
1920
SpringBoot3怎么做统一结果封装?
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
假如你作为项目组长,为 Spring Boot 项目设计一个规范的统一的RESTfulAPI 响应框架。
码哥字节
2024/11/23
7080
SpringBoot 定义优雅全局统一 Restful API 响应和统一异常处理,太优雅了!
SpringBoot教程(八) | SpringBoot统一结果封装
经过了前面几篇文章,SpringBoot中MVC相关的配置其实都已经差不多了,接下来就可以完全进入接口开发阶段了。前面我们写过几个接口,虽然都加了@RestController注解,相当于统一了我们的返回数据的基本形式为JSON,但是由于我们的项目可能是很多人一起开发,所以我们最好能够把我们的返回结果统一一下,让大家都返回一样的数据格式,这样即规范了代码,也方便了前端人员的调用,不然每个人都按照每个人的风格去写,代码会变得非常混乱。
一缕82年的清风
2022/04/08
8890
【SpringBoot web-3】web项目统一数据封装与全局异常处理
阿里巴巴的 fastjson是目前应用最广泛的JSON解析框架。本文也将使用fastjson。
云深i不知处
2020/09/16
8320
从0到1开发测试平台(九)后端对接口response的封装
在进行接口开发时,一般需要一个固定的返回样式,成功和失败的时候,都按照这种格式来进行统一的返回,这样,在与其他人进行接口之间的联调时不会显得很杂乱无章,并且前端方便对返回结果统一处理。而这种固定的格式如果放在Java的每个接口单独处理时,又会在接口开发时很繁琐,所以这个时候可以采用封装一个实体类,统一返回固定模板格式的内容。
周辰晨
2020/08/10
5280
Spring Boot 统一接口响应格式的正确姿势
熟悉 web 系统开发的同学可能比较熟悉,目前绝大多数的互联网软件平台基本都是前后端分离的开发模式,为了加快前后端接口对接速度,一套完善且规范的接口标准格式是非常有必要的,不仅能够提升开发效率,也会让代码看起来更加简洁、好维护。
星辰大海的精灵
2024/08/06
6280
SpringBoot - 统一格式封装及高阶全局异常处理
Spring Boot2.x-11 使用@ControllerAdvice和@ExceptionHandler实现自定义全局异常
小小工匠
2022/02/16
1.7K0
SpringBoot - 统一格式封装及高阶全局异常处理
Java设计RestfulApi接口,实现统一格式返回
创建返回状态码枚举 package com.sunny.tool.api.enums; /** * @Author sunt * @Description 响应枚举状态码 * @Date 2019/10/31 **/ public enum ResultCode { // 成功 SUCCESS(200), // 失败 FAIL(400), // 未认证(签名错误) UNAUTHORIZED(401), // 接口不存在 NOT
sunny1009
2020/06/19
2.1K0
Java设计RestfulApi接口,实现统一格式返回
统一响应数据的封装
现在不会点前后端分离都不好意思,在分离的环境中,我们前后交互就显得尤为重要。前端按照接口文档中的URL地址和参数要求发送请求,接着后端对业务进行处理就响应约定格式的数据,这种约定的格式常见如下:
晚上没宵夜
2020/05/26
1.5K0
Springboot封装统一返回结果及全局异常处理
很多时候我们在处理业务逻辑的时候需要抛出一些自定义的异常 创建BusinessException.java文件
超级小的大杯柠檬水
2024/11/21
2320
spring-boot-route(四)全局异常处理
在开发中,我们经常会使用try/catch块来捕获异常进行处理,如果有些代码中忘记捕获异常或者不可见的一些异常出现,就会响应给前端一些不友好的提示,这时候我们可以使用全局异常处理。这样就不用在代码中写那些烦人的try/catch块了,代码的可读性也会提高。
Java旅途
2020/10/21
6750
SpringBoot 统一结果集处理器
SpringBoot 统一结果集处理器(模板) HttpResponseEnum public enum HttpResponseEnum { /** * 操作成功 */ SUCCESS(20000, "操作成功!"), /** * 没有操作权限 */ AUTHORIZED(40003, "没有操作权限!"), /** * 系统异常 */ SYSTEM_ERROR(50000, "系统异常"),
木字楠
2022/11/15
7560
SpringBoot统一接口返回和全局异常处理
项目中最常见到的是封装一个工具类,类中定义需要返回的字段信息,把需要返回前端的接口信息,通过该类进行封装,这样就可以解决返回格式不统一的现象了。
用户7741497
2022/02/28
7740
SpringBoot统一返回R类
在项目开发过程中,很难避免返回各种各样的结果,就会导致前端渲染时造成混乱,怎么统一返回呢?
JokerDJ
2023/11/27
4800
史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29 完善更新小程序代码,2022.4.27 更新
在网上找了很多很多,看了不下几十篇,说实话,有些给出了核心代码,添上一个微信官方的那张流程图就结束了,会的人一下就懂了。但是说实话,真的不适合入门学者,浪费很多时间都不一定能解决问题,将代码复制完不是少这就是少那,或者就是不齐,不然就是跑不起来,不知道看到这篇文章的你有没有遇到过这样的问题。
宁在春
2022/10/31
8.1K1
史上最详细微信小程序授权登录与后端SprIngBoot交互操作说明,附源代码,有疑惑大家可以直接留言,蟹蟹 2021.11.29 完善更新小程序代码,2022.4.27 更新
SpringBoot:如何优雅地进行响应数据封装、异常处理?
越来越多的项目开始基于前后端分离的模式进行开发,这对后端接口的报文格式便有了一定的要求。通常,我们会采用JSON格式作为前后端交换数据格式,从而减少沟通成本等。
程序新视界
2022/09/19
2K0
统一响应对象、统一异常处理——跟可恶的try-catch说拜拜
首先,要定义一个全局异常的处理器,其中@ExceptionHandler(Exception.class)指明需要处理的异常类型
敲得码黛
2021/02/22
6920
统一响应对象、统一异常处理——跟可恶的try-catch说拜拜
SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!
今天我们来聊一聊在基于SpringBoot前后端分离开发模式下,如何友好的返回统一的标准格式以及如何优雅的处理全局异常。
Java_老男孩
2021/07/20
8.6K2
SpringBoot 如何统一后端返回格式?老鸟们都是这样玩的!
使用Swagger2实现RESTful文档
前后端分开开发中,前端人员需要异步调用后端发布的RESTful API服务,后端服务繁 多,清晰同步的API文档对于前端开发人员非常重要。Swagger是一款RESTful接口的文 档在线自动生成+功能测试功能软件。Spring可以非常方便的和Swagger集成,实现API 文档的自动生成和发布。
用户10175992
2022/11/15
3070
使用Swagger2实现RESTful文档
牛皮的程序猿后端返回值怎么定义
在后端接口封装中,我们一般都会对返回的数据做一个封装,以防止系统出现不可预期的数据结构和类型。比如这样:
JavaPub
2024/06/25
2290
牛皮的程序猿后端返回值怎么定义
推荐阅读
相关推荐
SpringBoot3怎么做统一结果封装?
更多 >
领券
一站式MCP教程库,解锁AI应用新玩法
涵盖代码开发、场景应用、自动测试全流程,助你从零构建专属AI助手
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档