精华内容
下载资源
问答
  • 2021-09-19 16:18:31

    此封装返回结果集主要包括:状态码、结果描述、数据。可根据结果调用对应的结果集方法返回,返回数据中可以为任意类型的数据。

    一、统计返回结果集

    import com.fasterxml.jackson.annotation.JsonIgnore;
    import java.io.Serializable;
    
    //静态导入枚举类
    import static com.yf.common.Response.ResultEnum.*;
    
    public class MyResult<T> implements Serializable {
    
        private static final long serialVersionUID = 4580737268023862568L;
    
        private Integer code;
    
        private String msg;
    
        private T data;
    
        public Integer getCode() {
            return code;
        }
    
        public void setCode(Integer code) {
            this.code = code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setMsg(String msg) {
            this.msg = msg;
        }
    
        public T getData() {
            return data;
        }
    
        public void setData(T data) {
            this.data = data;
        }
    
    
        public MyResult() {
        }
        public MyResult(Integer code){
            this.code = code;
        }
    
        //是否成功(自定义结果码为1000为成功)
        @JsonIgnore
        public boolean isSuccess(){
            return this.code == 1000;
        }
    
    
        //成功时引用
    
        public static <T> MyResult<T> success(){
            return success(YF_0000);
        }
        public static <T> MyResult<T> success(T data){
            return success(YF_0000,data);
        }
        public static <T> MyResult<T> success(ResultEnum re){
            return success(re,null);
        }
        public static <T> MyResult<T> success(ResultEnum re,T data){
            Integer code = re.getCode();
            String msg = re.getMsg();
            return success(code,msg,data);
        }
        public static <T> MyResult<T> success(Integer code, String msg, T data){
            MyResult<T> result = new MyResult<>(1000);
            result.setCode(code);
            result.setMsg(msg);
            result.setData(data);
            return result;
        }
    
    
    
        //失败时引用
    
        public static <T> MyResult<T> fail(){
            return fail(YF_9999);
        }
        public static <T> MyResult<T> fail(ResultEnum re){
            return fail(re,null);
        }
        public static <T> MyResult<T> fail(String msg){
            return fail(YF_9999.getCode(),msg,null);
        }
        public static <T> MyResult<T> fail(T data){
            return fail(YF_9999,data);
        }
        public static <T> MyResult<T> fail(ResultEnum re, T data){
            Integer code = re.getCode();
            String msg = re.getMsg();
            return fail(code,msg,data);
        }
        public static <T> MyResult<T> fail(Integer code , String msg, T data){
            MyResult<T> result = new MyResult<>();
            result.setCode(code);
            result.setMsg(msg);
            result.setData(data);
            return result;
        }
    
    
    }

    二、定义枚举类

    public enum  ResultEnum {
    
        YF_0000(1000, "成功"),
        YF_9999(9999,"系统异常");
    
    
        private Integer code;
        private String msg;
    
        ResultEnum(Integer code , String msg){
            this.code = code;
            this.msg = msg;
        }
    
        public Integer getCode() {
            return code;
        }
    
        public String getMsg() {
            return msg;
        }
    
    
    }

    三、示例

        @ApiOperation(value = "用户登录",notes = "用户登录")
        @PostMapping(path = "/login")
        public MyResult userLogin(@RequestBody UserInfo user1){
    
            //业务层获取用户信息
            UserInfo info = userInfoService.userLogin(user1);
            
            //成功返回
            return MyResult.success(info);
        }

    更多相关内容
  • Java 返回结果统一封装 对后台数据结果集封装,返回统一格式数据,方便统一管理 R package com.example.demo.common.dto; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import ...

    Java 返回结果集统一封装

    对后台数据结果集封装,返回统一格式数据,方便统一管理

    R

    
    package com.example.demo.common.dto;
    
    import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
    import com.example.demo.common.constant.Constants;
    
    import java.io.Serializable;
    
    /**
     * 返回前端 数据封闭类
     */
    public class R implements Serializable {
    
        private static final long serialVersionUID = 1L;
    
        private Integer code;
        private String msg;
        private Object data;
        private Long total; // 分页信息:总条数
    
        public R() {
        }
    
        private R(int code, String msg, Object data) {
            this.code = code;
            this.msg = msg;
            if (data instanceof Page<?>) {
                Page<?> page = (Page<?>) data;
                this.total = page.getTotal();
                this.data = page.getRecords();
            } else {
                this.data = data;
            }
        }
    
        public static R ok() {
            return new R(Constants.OK_CODE, Constants.OK_MSG, null);
        }
    
        public static R ok(Object data) {
            return new R(Constants.OK_CODE, Constants.OK_MSG, data);
        }
    
        public static R ok(String msg, Object data) {
            return new R(Constants.OK_CODE, msg, data);
        }
    
        public static R fail(String msg) {
            return new R(Constants.FAIL_CODE, msg, null);
        }
    
        public static R fail(int errorCode, String msg) {
            return new R(errorCode, msg, null);
        }
    
        public int getCode() {
            return code;
        }
    
        public String getMsg() {
            return msg;
        }
    
        public void setData(Object data) {
            this.data = data;
        }
    
        public Object getData() {
            return data;
        }
    
        public Long getTotal() {
            return total;
        }
    
        public R setTotal(Long total) {
            this.total = total;
            return this;
        }
    }
    

    Constants

    package com.example.demo.common.constant;
    
    /**
     * 常量类
     */
    public class Constants {
    
        public final static int OK_CODE = 200;
        public final static int FAIL_CODE = 400;
        public final static int OTHER_FAIL_CODE = 333;    // 其它错误
        public final static String OK_MSG = "请求成功";
        public final static String FAIL_MSG = "请求失败";
        public final static int STATUS_0 = 0;   // 可用状态
        public final static int STATUS_1 = 1;   // 禁用状态
    
        public final static String CACHE_NAME = "KACache";
    
        public final static String XSS_NOTICE_KEY = "notice";
    
        /**
         * 用户文件上传基础路径
         */
        public final static String BASE_USER_FILE_PATH = "userFile";
    
        // --------------- 删除标志 start ------------------------------
        /** 已删除 */
        public static final String ISDELETED = "Y";
    
        /** 未删除 */
        public static final String NODELETED = "N";
    
        // --------------- 删除标志 end ------------------------------
    }
    

    统一结果集使用

    controller

    package com.example.demo.module.emp.controller;
    
    
    import com.example.demo.common.dto.R;
    import com.example.demo.module.emp.entity.Emp;
    import com.example.demo.module.emp.service.IEmpService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.List;
    
    /**
     * <p>
     *  前端控制器
     * </p>
     *
     * @author xx
     * @since 2021-05-14
     */
    @RestController
    @RequestMapping("/emp")
    public class EmpController {
    
        @Autowired
        private IEmpService iEmpService;
    
        @GetMapping(value = "/data")
        public List<Emp> all(){
            return iEmpService.list();
        }
    
        @GetMapping(value = "/{id}")
        public R getById(@PathVariable(value = "id")Integer id){
            //返回失败 - 自定义失败提示语
    //        return R.fail("失败");
            //返回失败 - 自定义错误码、提示语
    //        return R.fail(333,"失败");
            //返回成功 - 默认提示语
    //        return R.ok();
            //返回成功 - 带数据data
    //        return R.ok(iEmpService.getById(id));
            //返回成功 - 带数据data、自定义提示语
            return R.ok("成功",iEmpService.getById(id));
        }
        
    }
    

    使用 Postman 请求测试
    在这里插入图片描述
    可以看到结果集数据已进行封装,包含了状态码、请求提示信息、返回数据、分页信息。

    结果集同一封装完成

    内容如有帮助,记得点赞哦~

    展开全文
  • Java 统一返回结果封装

    千次阅读 2019-11-27 11:44:34
    Java 统一返回结果封装封装实体类调用 封装实体类 /** * 统一返回结果集实体类 * @param <T> 返回数据对象 */ @Data public class ErrorMsg<T> { //错误码 private Integer errorCode; //错误...

    Java 统一返回结果集封装

    封装实体类

    /**
     * 统一返回结果集实体类
     * @param <T> 返回数据对象
     */
    @Data
    public class ErrorMsg<T> {
    
        //错误码
        private Integer errorCode;
    
        //错误信息,一般为前端提示信息
        private String errorMsg;
    
        //返回值,一般为成功后返回的数据
        private T data;
    
        //错误详情,一般为失败后的详细原因,如空指针之类的
        private String errorDetail;
    
        public ErrorMsg() {}
    
        public ErrorMsg(Integer errorCode, String errorMsg) {
            this.errorCode = errorCode;
            this.errorMsg = errorMsg;
        }
    
        public ErrorMsg(Integer errorCode, String errorMsg, T data) {
            this.errorCode = errorCode;
            this.errorMsg = errorMsg;
            this.data = data;
        }
    
        /**
         * 配合静态对象直接设置 data 参数
         * @param data
         * @return
         */
        public ErrorMsg setNewData(T data) {
            ErrorMsg error = new ErrorMsg();
            error.setErrorCode(this.errorCode);
            error.setErrorMsg(this.errorMsg);
            error.setErrorDetail(this.errorDetail);
            error.setData(data);
            return error;
        }
    
        /**
         * 配合静态对象直接设置 errorMsg 参数
         * @param errorMsg
         * @return
         */
        public ErrorMsg setNewErrorMsg(String errorMsg) {
            ErrorMsg error = new ErrorMsg();
            error.setErrorCode(this.errorCode);
            error.setErrorMsg(errorMsg);
            error.setErrorDetail(this.errorDetail);
            error.setData(this.data);
            return error;
        }
    
        public static final ErrorMsg SUCCESS = new ErrorMsg(200, "成功");
    
        public static final ErrorMsg INSERT_SUCCESS = new ErrorMsg(200, "新增成功");
    
        public static final ErrorMsg UPDATE_SUCCESS = new ErrorMsg(200, "更新成功");
    
        public static final ErrorMsg DELETE_SUCCESS = new ErrorMsg(200, "删除成功");
    
        public static final ErrorMsg UPLOAD_SUCCESS = new ErrorMsg(200, "上传成功");
    
        public static final ErrorMsg DOWNLOAD_SUCCESS = new ErrorMsg(200, "下载成功");
    
        public static final ErrorMsg LOGIN_SUCCESS = new ErrorMsg(200, "登陆成功");
    
        public static final ErrorMsg LOGOUT_SUCCESS = new ErrorMsg(200, "登出成功");
    
        public static final ErrorMsg LOGIN_ERROR = new ErrorMsg(201, "登陆错误");
    
        public static final ErrorMsg LOGIN_EXPIRE = new ErrorMsg(202, "登陆过期");
    
        public static final ErrorMsg ACCESS_LIMITED = new ErrorMsg(301, "访问受限");
    
        public static final ErrorMsg ARGS_ERROR = new ErrorMsg(501, "参数错误");
    
        public static final ErrorMsg UNKOWN_ERROR = new ErrorMsg(502, "系统异常");
    
        public static final ErrorMsg INSERT_ERROR = new ErrorMsg(503, "新增错误");
    
        public static final ErrorMsg UPDATE_ERROR = new ErrorMsg(504, "更新错误");
    
        public static final ErrorMsg DELETE_ERROR = new ErrorMsg(506, "删除错误");
    
        public static final ErrorMsg UPLOAD_ERROR = new ErrorMsg(507, "上传错误");
    
        public static final ErrorMsg DOWNLOAD_ERROR = new ErrorMsg(508, "下载错误");
    
        public static final ErrorMsg OTHER_SYSTEM_ERROR = new ErrorMsg(509, "调用系统异常");
    }
    

    调用

    成功返回

    return ErrorMsg.SUCCESS;
    

    成功带参返回

    return ErrorMsg.SUCCESS.setNewData(list);
    

    错误返回并设定自定义错误信息

    return ErrorMsg.LOGIN_ERROR.setNewErrorMsg("用户名或密码不正确");
    
    展开全文
  • Java返回数据结果统一封装体AjaxResult

    千次阅读 2022-01-05 17:01:08
    一、方法返回数据结果封装体分析 code:状态码 msg:返回消息(内容) data:数据对象 二、AjaxResult实体类 AjaxResult实体类继承HashMap<String,Object>,方便其构造方法调用父类put()方法,将...

    一、方法返回数据结果的封装体分析

    • code:状态码
    • msg:返回消息(内容)
    • data:数据对象

    二、AjaxResult实体类

         AjaxResult实体类继承HashMap<String,Object>,方便其构造方法调用父类put()方法,将需要的内容封装在集合内,即super.put()。

    /**
     * 数据结果封装体 AjaxResult
     *
     * @author LBF
     */
    public class AjaxResult extends HashMap<String, Object>
    {
        private static final long serialVersionUID = 1L;
    
        /** 状态码 */
        public static final String CODE_TAG = "code";
    
        /** 返回内容 */
        public static final String MSG_TAG = "msg";
    
        /** 数据对象 */
        public static final String DATA_TAG = "data";
    
        /**
         * 初始化一个AjaxResult 对象
         */
        public AjaxResult()
        {
        }
    
        /**
         * 初始化一个AjaxResult 对象
         *
         * @param code 状态码
         * @param msg 返回内容
         */
        public AjaxResult(int code, String msg)
        {
            super.put(CODE_TAG, code);
            super.put(MSG_TAG, msg);
        }
    
        /**
         * 初始化一个AjaxResult 对象
         * 
         * @param code 状态码
         * @param msg 返回内容
         * @param data 数据对象
         */
        public AjaxResult(int code, String msg, Object data)
        {
            super.put(CODE_TAG, code);
            super.put(MSG_TAG, msg);
            if (!(data == null))
            {
                super.put(DATA_TAG, data);
            }
        }
    
        /**
         * 返回默认成功消息
         * 
         * @return 成功消息
         */
        public static AjaxResult success()
        {
            return AjaxResult.success("操作成功");
        }
    
        /**
         * 返回成功消息
         * 
         * @param msg 返回内容
         * @return 成功消息
         */
        public static AjaxResult success(String msg)
        {
            return AjaxResult.success(msg, null);
        }
    
        /**
         * 返回成功数据
         * @param data 数据对象
         * @return
         */
        public static AjaxResult success(Object data)
        {
            return AjaxResult.success("操作成功", data);
        }
    
        /**
         * 初始化一个返回成功消息AjaxResult对象
         *
         * @param msg 返回内容
         * @param data 数据对象
         * @return 成功消息
         */
        public static AjaxResult success(String msg, Object data)
        {
            return new AjaxResult(HttpStatus.SUCCESS, msg, data);
        }
    
        /**
         * 返回默认错误消息
         * 
         * @return
         */
        public static AjaxResult error()
        {
            return AjaxResult.error("操作失败");
        }
    
        /**
         * 返回错误消息
         * 
         * @param msg 返回内容
         * @return 警告消息
         */
        public static AjaxResult error(String msg)
        {
            return AjaxResult.error(msg, null);
        }
    
        /**
         * 返回错误数据
         * 
         * @param code 状态码
         * @param msg 返回内容
         * @return 警告消息
         */
        public static AjaxResult error(int code, String msg)
        {
            return new AjaxResult(code, msg, null);
        }
    
        /**
         * 初始化一个返回错误消息AjaxResult对象
         *
         * @param msg 返回内容
         * @param data 数据对象
         * @return 警告消息
         */
        public static AjaxResult error(String msg, Object data)
        {
            return new AjaxResult(HttpStatus.ERROR, msg, data);
        }
    
    }

     三、Code状态码实体类

      定义一些常用的返回状态码

    /**
     * 返回HTTP状态码
     *
     * @author LBF
     */
    public class HttpStatus
    {
        /**
         * 操作成功
         */
        public static final int SUCCESS = 200;
    
        /**
         * 对象创建成功
         */
        public static final int CREATED = 201;
    
        /**
         * 请求已经被接受
         */
        public static final int ACCEPTED = 202;
    
        /**
         * 操作已经执行成功,但是没有返回数据
         */
        public static final int NO_CONTENT = 204;
    
        /**
         * 资源已被移除
         */
        public static final int MOVED_PERM = 301;
    
        /**
         * 重定向
         */
        public static final int SEE_OTHER = 303;
    
        /**
         * 资源未被修改
         */
        public static final int NOT_MODIFIED = 304;
    
        /**
         * 参数列表错误(缺少、格式不匹配)
         */
        public static final int BAD_REQUEST = 400;
    
        /**
         * 未授权
         */
        public static final int UNAUTHORIZED = 401;
    
        /**
         * 访问受限,授权过期
         */
        public static final int FORBIDDEN = 403;
    
        /**
         * 资源,服务未找到
         */
        public static final int NOT_FOUND = 404;
    
        /**
         * 未被允许http方法
         */
        public static final int BAD_METHOD = 405;
    
        /**
         * 资源冲突,或者资源被锁
         */
        public static final int CONFLICT = 409;
    
        /**
         * 不支持媒体类型数据
         */
        public static final int UNSUPPORTED_TYPE = 415;
    
        /**
         * 系统内部错误
         */
        public static final int ERROR = 500;
    
        /**
         * 未实现相应接口
         */
        public static final int NOT_IMPLEMENTED = 501;
    }

    四、测试(以返回成功结果为例) 

    1、返回结果封装体为空时,显示数据格式

        /**
         * 返回数据结果封装体为空
         * @return
         */
        @GetMapping("/test")
        public AjaxResult test(){
            return new AjaxResult();
        }

     2、返回结果封装体非空时,显示数据格式

        /**
         * 返回数据结果封装体非空
         * @return
         */
        @GetMapping("/test")
        public AjaxResult test(){
            return AjaxResult.success("测试用例成功","数据对象");
        }

    展开全文
  • Java后端统一封装返回结果Java的Web编程中,总是需要返回结果的嘛,对于前后端分离的项目来说,对结果的封装尤其重要,如果不进行封装的话总是需要各种各样的返回类型,如果说统一了返回值类型的话那就只需要指定...
  • springboot统一封装返回结果

    千次阅读 2021-04-15 22:08:48
    在项目框架整合阶段,为了更优雅的封装后端返回结果,便于前后端联调,通常需要对后端的返回值进行一定的封装处理,下面介绍2种比较实用的方式 方式1:常规处理 定义一个枚举类,主要包括返回的code和message,更多...
  • 在日常开发中前后端对接一般要约定好某种规则,比如说一个接口甲同学返回code=100表示返回成功数据,乙同学返回code=200表示返回成功数据,就会形成很多各自的规则,前端对接起来也麻烦,因此针对这种情况要进行同一...
  • springboot统一返回结果封装

    千次阅读 2022-03-28 22:12:25
    本文实现springboot对统一返回结果进行封装,方便前后端交互。 使用lombok中的@Data注解可以省略实体类的get、set方法。 pom.xml中引入lombok依赖 <!-- lombok简化开发 --> <dependency&g...
  • java方法通用返回结果封装操作

    千次阅读 2021-02-25 18:23:43
    我们在封装方法的时候,有的时候除了需要返回数据结果集data,有的时候需要返回code(或者status) 或者 msg ,此时可以采取下面两种方式进行封装方法的返回值:一.返回结果使用HashMap接收1.方法中的数据封装到hashmap...
  • 方法返回数据统一封装 package indi.pentiumcm.stock.utils; import lombok.Data; import java.io.Serializable; /** @projName: Stock @packgeName: indi.pentiumcm.stock.utils @className: FunRes @...
  • java返回统一结果封装

    千次阅读 2020-01-17 09:52:17
    package ... import java.io.Serializable; @SuppressWarnings("serial") public class Result implements Serializable{ private String res = "-1"; private String error = "系统异常";...
  • java返回结果封装

    万次阅读 2018-01-11 09:31:07
    1、返回消息统一定义文件CodeMsg.java public class CodeMsg { private int retCode; private String message; // 按照模块定义CodeMsg // 通用异常 public static CodeMsg SUCCESS = new CodeMsg(0,"success...
  • java统一返回结果

    千次阅读 2020-01-08 18:05:46
    后端返回统一结果集,例如包括状态码等信息,可以让前端更好的进行页面的展示。封装这样一个结果集有通用且常用的几个属性: status: 状态码 msg:状态信息 data:返回数据 针对我在bootstrap-table返回数据的...
  • 1、统一定义json结构 package com.esoon.eda.web.model; import lombok.Data; @Data public class JsonResult<T> { private T data; private String code; private String msg; public JsonResult(){...
  • Java全局统一返回处理

    千次阅读 2020-12-21 14:26:35
    (例:查询出来的对象集合直接返回,会统一封装在一个返回对象的data中丢给前端,保持返回数据统一) 1.创建统一返回对象: import lombok.Data; import java.io.Serializable; /** * 全局统一返回对象 * * @...
  • 超好用的统一API响应结果封装 包含返回成功/失败 里面返回POJO统一为泛型 可以直接拿到项目中使用
  • 可以通过AOP拦截所有Controller,再@After的时候统一封装 @RestControllerAdvice(basePackages = {"com.system"}) public class ControllerResponseAdvice implements ResponseBodyAdvice<Object
  • 前面我们写过几个接口,虽然都加了@RestController注解,相当于统一了我们的返回数据的基本形式为JSON,但是由于我们的项目可能是很多人一起开发,所以我们最好能够把我们的返回结果统一一下,让大家都返回一样的...
  • java 接口返回json数据封装

    千次阅读 2020-04-30 16:22:45
    首先,采用的是springboot,在controller中使用了@RestController或者@ResponseBody注解,返回的数据本身就是json格式。但是这样的json串在前后端分离使用中并不满足实际的效果,因此需要进行相应的封装,以满足前端...
  • java web 通用返回json 统一返回结果

    千次阅读 2018-12-10 03:10:41
    开源个自己封装的通用json返回吧,自我感觉写的还行…emmm… 主类:调用返回的 package com.orange.verify.adminweb.model; /** * web专用返回 * @author Orange * @date 2018/10/28 */ public class Response&...
  • 最近公司项目出现这样一个...在spring框架下,可以利用ResponseBodyAdvice接口,实现该接口则能够在声明了ResponseBody注解的controller返回json数据前,统一对json数据做处理,将资源地址的url统一替换为cdn资源url。
  • SpringBoot统一返回结果

    千次阅读 2022-04-09 01:30:08
    引言在后台开发时,控制台得到的数据格式会有不同,这时我们需要设置统一返回结果,方便我们分析数据以及对数据进行管理。一、方法定义统一返回格式有利于提高开发效率。1、定义code状态码,和返回message200:...
  • JAVA WEB项目开发过程中,统一的API数据返回很常见,这里总结一下Rest接口里统一的API数据返回格式和Rpc接口里统一的API数据返回格式。
  • 开发中对返回结果类的封装

    千次阅读 2020-09-28 19:50:08
    文章目录SSM项目使用---ResultEntitySpring Boot项目使用---AppResponse与枚举类 SSM项目使用—ResultEntity ... * @description:统一返回结果实体类 * 使用案例: ResultEntity.success().put("page",
  • 基于java的前后端分离项目中,前端获取后端controller层接口返回的JSON格式的数据,并展示出来。通常为了提高代码质量,会将后端返回的数据进行统一的格式处理。 自定义工具类取名为Result import lombok.Data; ...
  • SpringBoot返回统一封装格式的JSON数据

    千次阅读 2020-06-19 13:05:31
    文章目录一 概要二 @RestController注解三 常用数据类型转为 JSON 格式3.1 创建 User 实体类3.2 创建 Controller 类3.3 测试不同数据类型返回的 JSON3.4 Jackson 中对 null 的处理四 使用 fastjson 封装统一返回的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 129,300
精华内容 51,720
关键字:

java返回结果统一封装

java 订阅