基于Java編寫(xiě)一個(gè)通用返回工具類Result
前言
Java項(xiàng)目搭建時(shí),常常需要去封裝一個(gè)通用型的Result工具類,下面就是我自己封裝的常用的返回類,可以直接使用。(有部分Swagger注解,使用時(shí)可忽略)
第一步、創(chuàng)建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 = "響應(yīng)信息體") public class ResultUtils<T> implements Serializable { /** * 響應(yīng)碼 */ @Getter @Setter @ApiModelProperty(value = "響應(yīng)標(biāo)記:成功標(biāo)記=0,失敗1") private Integer code; /** * 響應(yīng)信息 */ @Getter @Setter @ApiModelProperty(value = "響應(yīng)信息") private String message; /** * 響應(yīng)數(shù)據(jù) */ @Getter @Setter @ApiModelProperty(value = "響應(yīng)數(shù)據(jù)") private T data; @Getter @Setter @ApiModelProperty(value = "返回狀態(tài)") 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; } /** * 無(wú)數(shù)據(jù)成功返回 * * @return */ public static <T>ResultUtils success(){ return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),null,true); } /** * 帶數(shù)據(jù)返回 */ 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 + "]"; } }
第二步 創(chuàng)建常用的報(bào)錯(cuò)信息類
在日常開(kāi)發(fā)中可不寫(xiě),將ReusltUtils中的ResultCode的代碼換成常量即可
注:主要是為了美觀以及修改方便,所以去單獨(dú)的封裝一個(gè)常量信息類
/** * @author ProsperousEnding-fhl * @create 2023-07-20-15:46 */ @Getter public enum ResultCode { /** * 成功 */ SUCCESS(200, "成功"), FAIL(1000, "失敗"), FAILED(400, "請(qǐng)求失敗"), NOT_FOUND(404, "未找到"), SERVER_ERROR(500, " 服務(wù)器內(nèi)部出錯(cuò) "), /** * 錯(cuò)誤參數(shù) */ PARAM_IS_INVALID(1001, "參數(shù)無(wú)效"), PARAM_IS_BLANK(1002, "參為空"), PARAM_TYPE_ERROR(1003, "參數(shù)類型錯(cuò)誤"), PARAM_NOT_COMPLETE(1004, "參數(shù)缺失"), /** * 用戶錯(cuò)誤 */ USER_NOT_LOGIN_IN(2001, "用戶未登錄"), USER_LOGIN_ERROR(2002, "賬號(hào)不存在或者密碼錯(cuò)誤"), 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; } }
第三步、調(diào)用方法以及返回樣式
調(diào)用方式:
使用時(shí)可以直接使用ResultUtils.方法的方式
public Result getUser() { User user1=new User(); user1.setName("codeTalker") return Result.success(user1); }
返回樣式:
{ "code": 200, "message": "成功", "data":{ "name":"codeTalker" } "status": true }
以上就是基于Java編寫(xiě)一個(gè)通用返回工具類Result的詳細(xì)內(nèi)容,更多關(guān)于Java通用返回工具類的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
java數(shù)組實(shí)現(xiàn)隊(duì)列及環(huán)形隊(duì)列實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了java數(shù)組實(shí)現(xiàn)隊(duì)列及環(huán)形隊(duì)列實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10SpringBoot項(xiàng)目啟動(dòng)數(shù)據(jù)加載內(nèi)存的三種方法
一般來(lái)說(shuō),SpringBoot工程環(huán)境配置放在properties文件中,啟動(dòng)的時(shí)候?qū)⒐こ讨械膒roperties/yaml文件的配置項(xiàng)加載到內(nèi)存中,本文給大家介紹了SpringBoot項(xiàng)目啟動(dòng)數(shù)據(jù)加載內(nèi)存中的三種方法,需要的朋友可以參考下2024-04-04Springboot 整合 Dubbo/ZooKeeper 實(shí)現(xiàn) SOA 案例解析
這篇文章主要介紹了Springboot 整合 Dubbo/ZooKeeper 詳解 SOA 案例,需要的朋友可以參考下2017-11-11SpringBoot+Netty實(shí)現(xiàn)簡(jiǎn)單聊天室的示例代碼
這篇文章主要介紹了如何利用SpringBoot Netty實(shí)現(xiàn)簡(jiǎn)單聊天室,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)SpringBoot有一定幫助,感興趣的同學(xué)可以了解一下2022-02-02Jmeter使用接口傳遞數(shù)據(jù)過(guò)程圖解
這篇文章主要介紹了Jmeter使用接口傳遞數(shù)據(jù)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05SpringBoot中Json工具類的實(shí)現(xiàn)
本文介紹在Java項(xiàng)目中實(shí)現(xiàn)一個(gè)JSON工具類,支持對(duì)象與JSON字符串之間的轉(zhuǎn)換,并提供依賴和代碼示例便于直接應(yīng)用,感興趣的可以了解一下2024-10-10