首页 > 其他分享 >springboot3项目的搭建三(统一返回异常等)

springboot3项目的搭建三(统一返回异常等)

时间:2024-05-30 09:32:41浏览次数:22  
标签:返回 code return ResultData springboot3 resultData msg public 搭建

springboot3项目的搭建三(统一返回异常等)

 一、统一返回 (其实两部分,一个是返回错误码可枚举可类,另一个是返回的实体其中data是泛型)

1.返回码:

package com.qiqi.common.constants;

public enum ReturnCode {

    SUCCESS(200, "操作成功"),
    NEED_LOGIN(401, "需要登录后操作"),
    NO_OPERATOR_AUTH(403, "无权限操作"),
    TOKEN_ILL(404,"token非法"),
    SYSTEM_ERROR(500, "出现错误"),
    USERNAME_EXIST(501, "用户名已经存在"),
    PHOMENUMBER_EXIST(502, "手机号已存在"),
    EMAIL_EXIST(503, "邮箱已存在"),
    REQUEST_USERNAME(504, "必须填写用户名"),
    LOGIN_ERROR(505, "用户名或密码错误");

    // 自定义状态码
    private final int code;

    // 自定义描述
    private final String msg;

    ReturnCode(int code, String errorMessage) {
        this.code = code;
        this.msg = errorMessage;
    }

    public int getCode() {
        return this.code;
    }

    public String getMsg() {
        return this.msg;
    }

}

2.返回实体

package com.qiqi.common.response;

import com.qiqi.common.constants.ReturnCode;
import lombok.Data;

import java.util.Objects;

@Data
public class ResultData<T> {
    /**
     * 响应编码
     */
    private Integer code;
    /**
     * 响应信息
     */
    private String msg;
    /**
     * 响应数据
     */
    private T data;
    /**
     * 接口请求时间
     */
    private long timestamp ;

    public ResultData(){
        this.timestamp = System.currentTimeMillis();
    }

    public ResultData(Integer code, String msg){
        this.code=code;
        this.msg=msg;
    }

    public ResultData(Integer code, String msg, T data){
        this.code=code;
        this.msg=msg;
        this.data=data;
    }

    public static ResultData success(){
        return ResultData.success(ReturnCode.SUCCESS.getCode(),ReturnCode.SUCCESS.getMsg());
    }
    public static ResultData success(int code, String msg){
        ResultData<Object> resultData = new ResultData<>();
        resultData.setCode(code);
        resultData.setMsg(msg);
        return resultData;
    }

    public static ResultData success(Object data){
        ResultData<Object> resultData = new ResultData<>(ReturnCode.SUCCESS.getCode(),ReturnCode.SUCCESS.getMsg());
        if (Objects.nonNull(data)){
            resultData.setData(data);
        }
        return resultData;
    }

    public static ResultData error(int code, String msg){
        ResultData<Object> resultData = new ResultData<>(code,msg);
        return resultData;
    }

    public static ResultData error(ReturnCode returnCode){
        ResultData<Object> resultData = new ResultData<>(returnCode.getCode(), returnCode.getMsg());
        return resultData;
    }
}

3. 使用

        //return ResultData.success(admins); //返回实体
        return ResultData.error(ReturnCode.EMAIL_EXIST);//返回 邮箱已存在

 

 

二、异常处理

 

标签:返回,code,return,ResultData,springboot3,resultData,msg,public,搭建
From: https://www.cnblogs.com/fps2tao/p/18221640

相关文章

  • for循环外创建一个http请求对象,循环内赋值参数多次请求返回数据相同定位及解决(共用一
    一次项目线上问题定位,发现多次不同参数请求值相同,直接上代码List<String>list=newArrayList<>();list.add("85657218,上海奉贤恒盛湖畔豪庭xxx号xxx");list.add("85657219,上海虹口虬江支路xxx弄xxx室");if(CollectionUtil.isNotEmpty(list))......
  • Ai+姓氏头像壁纸项目,含直播搭建教程
    1.前言小伙伴们大家好,欢迎来到天夏Ai,这里专注于分享人工智能精品资源:Ai副业项目、Ai效率神器!和你一起共享Ai信息,分享Ai副业项目资源,开启智能副业赚钱新时代!今天为大家带来Ai+姓氏头像壁纸项目,拒绝割韭菜,只讲干货!下方数据可以看到,人们对头像壁纸的需求量还是很大的......
  • 记录kali搭建Apache+MySQL+PHP
    一.打开相应的服务kali中已经预先安装好了Apache2,MySQL和PHP,所以我们在使用的时候只需要打开相应的服务即可。1.打开Apache2服务kali预先安装的Apache在etc文件里,我们ls显示文件后发现了apache2文件夹,进入到该文件夹后启动服务,命令如下:/etc/init.d/apache2start检测服务......
  • 贷款借钱平台 贷款源码 小额贷款系统 卡卡贷源码 小额贷款源码 贷款平台开发搭建
    这款是贷款平台源码/卡卡贷源码/小贷源码/完美版后台51800密码51800 数据库替换application/database.php程序采用PHP+MySQL,thinkphp框架代码开源,不加密后台效果:手机版效果 这款是贷款平台源码/卡卡贷源码/小贷源码/完美版后台51800 密码51800 数据库替换applicati......
  • 搭建视频解说小程序系统
        视频解说小程序是一款可以把视频解说上传到小程序,设置为广告观看,这样引导用户去小程序观看,这样引导用户去小程序看,就产生一个广告收益。二、视频解说小程序的页面展示1、前端:首页+搜索栏+个人主页基本功能2、达人端:首页(素材上传+素材管理)+数据查询+个人主页基......
  • QGIS开发笔记(三):Windows安装版二次开发环境搭建(下):将QGis融入QtDemo,添加QGis并加载tif遥
    前言  使用QGis的目的是进行二次开发,或者说是融入我们的应用(无人车、无人船、无人机),本片描述搭建QGis二次基础开发环境,由于实在是太长了,进行了分篇:上半部分:主要是安装好后,使用QtCreator可以使用QGIs的apps下的Qt使用对应的编译器编译不带qgis的空工程。下半部分:在上半......
  • 最新ChatGPT网站源码+Midjourney-AI绘画系统源码,详细图文搭建教程/支持GPT-4o文档分析
    一、前言SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。支持GPT-4o大模型、文档分析、识图图片理解、GPTs应用、GPT语音对话、联网提问、GPT-4全模型、DALL-E3文生图、GPT4-All联网搜索模型、思维导图、会员......
  • 逆向海淘商业模式案例分析 :hagobuy淘宝代购集运系统丨淘宝代购集运系统搭建
    淘宝代购集运系统是一个电子商务平台,它允许消费者购买来自不同在线零售商(如淘宝、天猫、京东等)的商品,并将这些商品统一运送到消费者的地址。下面将探讨淘宝代购集运系统的工作机制和优势:多平台API接口的集成实时数据同步:通过API接口,系统能够实时获取并同步电商平台上商品......
  • ts拯救前端:优雅的在运行时校验后端接口返回数据类型 typescript-json-schema+ ajv
    包管理器:pnpm环境:node依赖:typescript-json-schema、ajv准备工作1、安装依赖pnpmaddtypescript-json-schemapnpmaddajv2、准备需要校验的数据类型//userType.tsexportinterfaceUser{id:string;token:string;nick?:string;}3、使用typescrip......
  • vue前端页面搭建
    十、页面搭建学习10.1安装element在这里看一下有没有elementui,有就是下载成功了。10.2mainjs全局引入importElementUIfrom'element-ui';import'element-ui/lib/theme-chalk/index.css';Vue.use(ElementUI)10.3简单试用运行serve10.4页面布局(都可以直接查......