SpringBoot自定义Result类替换Map<String,Object>

项目结构如下

Result类

复制代码
package cn.ryanfan.virtulab_back.common.result;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

@Data
public class Result implements Serializable {
    @ApiModelProperty(value = "是否操作成功")
    private boolean success;
    @ApiModelProperty(value = "状态码")
    private Integer code;
    @ApiModelProperty(value = "操作信息")
    private String message;
    @ApiModelProperty(value = " 操作数据")
    private Map<String,Object> data = new HashMap<>();

    public static Result ok(){
        Result result = new Result();
        result.setSuccess(true);
        result.setCode(ResultInfo.SUCCESS.getCode());
        result.setMessage(ResultInfo.SUCCESS.getMessage());
        return result;
    }
    public  static Result error(){
        Result result=new Result();
        result.setSuccess(false);
        result.setCode(ResultInfo.ERROR.getCode());
        result.setMessage(ResultInfo.ERROR.getMessage());
        return  result;
    }


    public Result code(Integer code){
        this.setCode(code);
        return  this;
    }

    public Result message(String message){
        this.setMessage(message);
        return  this;
    }

    public Result data(String key,Object data){
        this.data.put(key, data);
        return  this;
    }
}

IResult接口

复制代码
package cn.ryanfan.virtulab_back.common.result;

public interface IResult {
    Integer getCode();
    String getMessage();
}

ResultInfo枚举类

复制代码
package cn.ryanfan.virtulab_back.common.result;

public enum ResultInfo implements IResult{
    SUCCESS(200,"操作成功"),
    ERROR(400,"操作失败"),
    NOT_FOUND(404,"没有找到"),
    ;
    private  Integer code;
    private  String message;

    ResultInfo(Integer code,String message){
        this.code=code;
        this.message=message;
    }
    @Override
    public Integer getCode() {
        return code;
    }

    @Override
    public String getMessage() {
        return message;
    }
}

大致用法如下

相关推荐
彩票管理中心秘书长9 分钟前
MySQL数据库新建流程和字符集详细介绍
后端
geovindu11 分钟前
go: Proxy Pattern
开发语言·后端·设计模式·golang·代理模式
彩票管理中心秘书长13 分钟前
MySQL 用户与权限管理 (DCL) 操作命令大全
后端
langsiming16 分钟前
【无标题】
java·开发语言·数据库
彩票管理中心秘书长18 分钟前
MySQL 索引、事务与约束操作命令大全
后端
Rust语言中文社区19 分钟前
【Rust日报】2026-04-24 Vizia 0.4 发布——纯 Rust 声明式响应式 GUI 框架
开发语言·后端·rust
weisian15122 分钟前
Java并发编程--45-分布式一致性协议入门:Raft、Paxos与ZAB的核心思想
java·分布式·raft·paxos·zab
木井巳24 分钟前
【递归算法】解数独
java·算法·leetcode·决策树·深度优先·剪枝
t***54429 分钟前
如何在 Dev-C++ 中切换编译器
java·开发语言·c++
Lisonseekpan31 分钟前
Git:如何将一个分支的特定提交合并到另一个分支?
java·大数据·git·后端·elasticsearch