java定義通用返回結(jié)果類ResultVO使用示例詳解
1. 定義通用返回結(jié)果類
定義ResultVO類,作返回給前端的對(duì)象結(jié)構(gòu),主要有4個(gè)字段
- code : 錯(cuò)誤碼
- data : 內(nèi)容
- message : 消息
- description : 具體描述
import lombok.Data; import java.io.Serializable; /** * 通用返回結(jié)果類 * @param <T> */ @Data public class ResultVO<T> implements Serializable { /** * 錯(cuò)誤碼 */ private int code; /** * 內(nèi)容 */ private T data; /** * 消息 */ private String message; /** * 描述 */ private String description; public ResultVO(int code, T data, String message, String description) { this.code = code; this.data = data; this.message = message; this.description = description; } public ResultVO(int code, T data) { this(code,data,"",""); } public ResultVO(int code, T data, String message) { this(code,data,message,""); } }
2 工具類
/** * 通用返回響應(yīng)工具類 * * @author leovany * @date 2023/09/23 */ public class ResultUtils { /** * 成功 * * @param data 數(shù)據(jù) * @return {@link ResultVO}<{@link T}> */ public static <T> ResultVO<T> success(T data) { return new ResultVO<T>(0, data, "success"); } /** * 錯(cuò)誤 * * @param code 錯(cuò)誤碼 * @param message 信息 * @param description 描述 * @return {@link ResultVO} */ public static ResultVO error(int code, String message, String description) { return new ResultVO<>(code, null, message, description); } }
3 使用
- 返回值用
ResultVO<XXX>
封裝 - 成功返回:
ResultUtils.success(XX);
- 失敗失?。?code>ResultUtils.error(code,message,description);
@PostMapping("/login") public ResultVO<User> userLogin(@RequestBody UserLoginRequest userLoginRequest, HttpServletRequest request) { String userAccount = userLoginRequest.getUserAccount(); String userPassword = userLoginRequest.getUserPassword(); // 參數(shù)校驗(yàn) if (StringUtils.isAnyBlank(userAccount, userPassword)) { return ResultUtils.error(40000,"參數(shù)錯(cuò)誤","參數(shù)不能為空"); } // 從數(shù)據(jù)庫(kù)查找用戶 User user = userService.doLogin(userAccount, userPassword, request); return ResultUtils.success(user); }
跟之前對(duì)比,代碼更加優(yōu)雅
4 返回給前端效果圖
返回給前端的響應(yīng)結(jié)果
{ "code": 0, "data": { "id": 10, "username": "admin" }, "message": "success", "description": "" }
- 成功
- 失敗
總結(jié)
通過封裝ResultVO
通用返回結(jié)果對(duì)象之后,保證了后端跟前端視圖對(duì)象(VO)的統(tǒng)一。
以上就是java定義通用返回結(jié)果類ResultVO使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于java返回結(jié)果類ResultVO的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java多線程Callable接口實(shí)現(xiàn)代碼示例
相信大家對(duì)Java編程中如何創(chuàng)建線程已經(jīng)不陌生了,這篇文章就向朋友們介紹實(shí)現(xiàn)callable接口,具體實(shí)例詳見正文。2017-10-10Spring?Get請(qǐng)求與post請(qǐng)求的實(shí)現(xiàn)
在Spring中,GET請(qǐng)求和POST請(qǐng)求是兩種常見的HTTP請(qǐng)求方法,用于與服務(wù)器進(jìn)行交互,本文詳細(xì)的介紹一下Spring?Get請(qǐng)求與post請(qǐng)求的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10解決@Autowired報(bào)錯(cuò)Could not autowire. No bea
介紹了在IDEA中使用@Autowired報(bào)錯(cuò)Couldnot autowire. No beans of 'XXX' type found的解決方法,原因是@Autowired在注入service時(shí),由于service接口沒有實(shí)現(xiàn)類,而mybatis僅需提供Dao接口,導(dǎo)致@Autowired無法識(shí)別2024-12-12JAVA中通過Hibernate-Validation進(jìn)行參數(shù)驗(yàn)證
這篇文章主要介紹了JAVA中通過Hibernate-Validation進(jìn)行參數(shù)驗(yàn)證,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04java 高并發(fā)中volatile的實(shí)現(xiàn)原理
這篇文章主要介紹了java 高并發(fā)中volatile的實(shí)現(xiàn)原理的相關(guān)資料,在多線程并發(fā)編程中synchronized和Volatile都扮演著重要的角色,Volatile是輕量級(jí)的synchronized,它在多處理器開發(fā)中保證了共享變量的“可見性”,需要的朋友可以參考下2017-03-03IDEA下使用Spring Boot熱加載的實(shí)現(xiàn)
本文主要介紹了IDEA下使用Spring Boot熱加載的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06SpringBoot中優(yōu)化Undertow性能的方法總結(jié)
Undertow是一個(gè)采用 Java 開發(fā)的靈活的高性能Web服務(wù)器,提供包括阻塞和基于NIO的非堵塞機(jī)制,本文將給大家介紹SpringBoot中優(yōu)化Undertow性能的方法,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-08-08