Java通用返回工具类Result
通用返回类Result
前言:Java项目搭建时,常常需要去封装一个通用型的Result工具类,下面就是我自己封装的常用的返回类,可以直接使用。(有部分Swagger注解,使用时可忽略)
第一步、创建ReusltUtils工具类
package com.code.walker.utils;
import com.code.walker.constant.ResultCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* @author ProsperousEnding-fhl
* @create 2023-07-20-15:16
*/
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "响应信息体")
public class ResultUtils<T> implements Serializable {
/**
* 响应码
*/
@Getter
@Setter
@ApiModelProperty(value = "响应标记:成功标记=0,失败1")
private Integer code;
/**
* 响应信息
*/
@Getter
@Setter
@ApiModelProperty(value = "响应信息")
private String message;
/**
* 响应数据
*/
@Getter
@Setter
@ApiModelProperty(value = "响应数据")
private T data;
@Getter
@Setter
@ApiModelProperty(value = "返回状态")
private boolean status;
private ResultUtils(ResultCode resultCode,T data,boolean status){
this.code = resultCode.getCode();
this.message = resultCode.getMessage();
this.data = data;
this.status=status;
}
/**
* 无数据成功返回
*
* @return
*/
public static <T>ResultUtils success(){
return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),null,true);
}
/**
* 带数据返回
*/
public static <T> ResultUtils success(T data){
return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),data,true);
}
/**
* 失败
*/
public static <T>ResultUtils fail(){
return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), null,false);
}
/**
* 失败
*/
public static <T> ResultUtils fail(T data){
return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), data,false);
}
@Override
public String toString() {
return "ResultUtils [code=" + code + ", message=" + message + ", data=" + data + "]";
}
}
第二步 创建常用的报错信息类(在日常开发中可不写,将ReusltUtils中的ResultCode的代码换成常量即可)
注:主要是为了美观以及修改方便,所以去单独的封装一个常量信息类
/**
* @author ProsperousEnding-fhl
* @create 2023-07-20-15:46
*/
@Getter
public enum ResultCode {
/**
* 成功
*/
SUCCESS(200, "成功"),
FAIL(1000, "失败"),
FAILED(400, "请求失败"),
NOT_FOUND(404, "未找到"),
SERVER_ERROR(500, " 服务器内部出错 "),
/**
* 错误参数
*/
PARAM_IS_INVALID(1001, "参数无效"),
PARAM_IS_BLANK(1002, "参为空"),
PARAM_TYPE_ERROR(1003, "参数类型错误"),
PARAM_NOT_COMPLETE(1004, "参数缺失"),
/**
* 用户错误
*/
USER_NOT_LOGIN_IN(2001, "用户未登录"),
USER_LOGIN_ERROR(2002, "账号不存在或者密码错误"),
USER_ACCOUNT_FORBIDDEN(2003, "账户被禁用"),
USER_NOT_EXISTS(2004, "用户不存在"),
USER_HAS_EXISTED(2005, "用户已存在");
/**
* 代码
*/
private final Integer code;
/**
* 信息
*/
private final String message;
private ResultCode(Integer code, String message) {
this.code = code;
this.message = message;
}
}
第三步、调用方法以及返回样式
- 调用方式:
使用时可以直接使用ResultUtils.方法的方式
public Result getUser() {
User user1=new User();
user1.setName("codeTalker")
return Result.success(user1);
}
- 返回样式:
{
"code": 200,
"message": "成功",
"data":{
"name":"codeTalker"
}
"status": true
}
Java通用返回工具类Result的更多相关文章
- Java的各种工具类
下面是java的各种工具,包括获取时间和时间比较,检验集合和字符串是否为空和长度大小等等 1 import java.io.BufferedReader; import java.io.File; i ...
- java格式处理工具类
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOExceptio ...
- liferay总结的通用的工具类
在写增删改查的时候,自己动手写了几个通用的工具类,这几个通用的工具类也是基于API写的 第一个是liferay中的分页.跟我们做普通的web开发,分页是一样的首先需要建立一个分页的实体的类 packa ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- 一个爬取https和http通用的工具类(JDK自带的URL的用法)
今天在java爬取天猫的时候因为ssl报错,所以从网上找了一个可以爬取https和http通用的工具类.但是有的时候此工具类爬到的数据不全,此处不得不说python爬虫很厉害. package cn. ...
- 免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作简易流量爬虫
前言 我们之前的爬虫都是模拟成浏览器后直接爬取,并没有动态设置IP代理以及UserAgent标识,本文记录免费IP代理池定时维护,封装通用爬虫工具类每次随机更新IP代理池跟UserAgent池,并制作 ...
- java精确计算工具类
java精确计算工具类 import java.math.BigDecimal; import java.math.RoundingMode; import java.math.BigDecimal; ...
- HttpTool.java(在java tool util工具类中已存在) 暂保留
HttpTool.java 该类为java源生态的http 请求工具,不依赖第三方jar包 ,即插即用. package kingtool; import java.io.BufferedReader ...
- JAVA 8 日期工具类
JAVA 8 日期工具类 主题描述 JAVA中日期时间的历史 代码成果 主题描述 JAVA的日期时间一直比较混乱,本来以为joda会是巅峰,但是JAVA 8改变了我的思想.但是即便在JAVA 8面前, ...
- JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)
系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...
随机推荐
- lua变量、数据类型、if判断条件和数据结构table以及【lua 函数】
一.lua变量[ 全局变量和局部变量和表中的域] Lua 变量有三种类型:全局变量和局部变量和表中的域. 全局变量:默认情况下,Lua中所有的变量都是全局变量. 局部变量:使用local 显式声明在函 ...
- prometheus node-exporter安装
目录 prometheus node-exporter安装 包安装在linux服务器 Daemonset安装 Docker安装 helm安装 prometheus node-exporter安装 安装 ...
- SpringBoot 自动扫描第三方包及spring.factories失效的问题
为什么会找不到 Spring 依赖注入 就是要让spring找到要注入的类 并且识别到了 @Component.@Service 等注解. 1. 当在开发的第三方包里写明了 @Component.@S ...
- Django笔记三十九之settings配置介绍
本文首发于公众号:Hunter后端 原文链接:Django笔记三十九之settings配置介绍 这一篇笔记介绍 Django 里 settings.py 里一些常用的配置项,这些配置有一些是在之前的笔 ...
- 2022-12-31:以下go语言代码输出什么?A:1 1;B:-1 1;C:-1 -1;D:编译错误。 package main import “fmt“ func main() { a
2022-12-31:以下go语言代码输出什么?A:1 1:B:-1 1:C:-1 -1:D:编译错误. package main import "fmt" func main() ...
- 2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢。 返回先手赢还是后手赢。
2022-12-02:有a块草莓蛋糕,有b块芝士蛋糕,两人轮流拿蛋糕, 每次不管是谁只能选择在草莓蛋糕和芝士蛋糕中拿一种, 拿的数量在1~m之间随意, 谁先拿完最后的蛋糕谁赢. 返回先手赢还是后手赢. ...
- MySQL的varchar存储原理:InnoDB记录存储结构
摘要:varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实 ...
- jdg安装及环境设置
1.下载java8 java11 到默认路径 2.右击我的电脑,点击属性 3.点击高级系统设置 4.点击环境变量 5.点击新建 6. 按照提示新建条目 第一个 变量名填入: JAVA_HOME 变量值 ...
- 连接内网 SSH 新姿势,告别慢速度及防火墙限制
近些年,因为某些原因,我们常常在家远程研发业务,当某些程序或业务代码在公司电脑上时,就需要访问公司电脑远程操作, SSH 登录 Linux 是一种非常常见的方式,但是在一些情况下,SSH 无法直接连接 ...
- 浅析HTTPS的通信机制
什么是HTTPS? HTTPS 是在HTTP(Hyper Text Transfer Protocol)的基础上加入SSL(Secure Sockets Layer),在HTTP的基础上通过传输加密和 ...