springboot成功的全局统一返回

成功的返回,如下处理,失败的返回通过异常处理

vo

package com.example.demo.VO;

public class UserVo {
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public UserVo setName(String name) {
        this.name = name;
        return this;
    }

    public String getPassword() {
        return password;
    }

    public UserVo setPassword(String password) {
        this.password = password;
        return this;
    }
}

同一返回的包装类

package com.example.demo.common;


import java.io.Serializable;

public class CommonResult<T> implements Serializable {
    private static Integer SUCCESS_CODE=0;
    private Integer code;
    private String message;
    private T data;

    public static  <T> CommonResult<T> success(T data){
        CommonResult<T> commonResult=new CommonResult<T>();
        commonResult.setCode(SUCCESS_CODE);
        commonResult.setData(data);
        return commonResult;
    }
    public static  <T> CommonResult<T> error(Integer code,String message,T data){
        CommonResult<T> commonResult=new CommonResult<T>();
        commonResult.setCode(code);
        commonResult.setMessage(message);
        commonResult.setData(data);
        return commonResult;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

拦截指定controller的处理类,对返回结果进行处理

package com.example.demo.common;

import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;

/*
* 此类:拦截com.example.demo.controller返回的数据,并做修改
* */
@ControllerAdvice(basePackages = "com.example.demo.controller")
public class GlobalResponseHandler implements ResponseBodyAdvice {

    @Override
    public boolean supports(MethodParameter methodParameter, Class aClass) {
        return true;//返回true 表示拦截 Controller 所有 API 接口的返回结果。
    }

    @Override
    public Object beforeBodyWrite(Object object, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
        //对返回的结果进行处理
        if(object instanceof CommonResult){
            return object;
        }
        return CommonResult.success(object);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值