• SpringBoot之返回统一结果


    如果你写的接口没有统一返回结果,一个一个接口去修改效率是很低的,可以设置统一返回结果;

    代码如下:

    import com.emi2c.mybatis.entity.Result;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    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.RestControllerAdvice;
    import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
    
    import java.util.Objects;
    
    /**
     * 返回统一结果
     */
    @RestControllerAdvice(basePackages = "com.emi2c.mybatis.controller")
    public class ResponseAdvice implements ResponseBodyAdvice {
    
        private static final Logger logger = LoggerFactory.getLogger(ResponseAdvice.class);
    
        @Override
        public boolean supports(MethodParameter methodParameter, Class aClass) {
            return true;
        }
    
    
        /**
         * @param o  接口返回数据
         * @param methodParameter
         * @param mediaType
         * @param aClass
         * @param serverHttpRequest
         * @param serverHttpResponse
         * @return
         */
        @Override
        public Object beforeBodyWrite(Object o, MethodParameter methodParameter, 
    MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { String methodName
    = methodParameter.getMethod().getName(); String parameterName = methodParameter.getParameterName(); logger.info("method: {}, param: {}", methodName, parameterName); Result result = new Result(); if (Objects.isNull(o)) { result.setMessage("success"); return result; } if (o instanceof Result) { return o; } result.setMessage("success"); result.setData(o); return result; } }

    Result类:

    /**
     * 统一返回结果
     * @param <T>
     */
    public class Result<T> {
    
        public static final int success = 0;
        public static final int fail = 1;
        private int status = success;
        private String message = "success";
        private T data;
    
        public int getStatus() {
            return status;
        }
    
        public void setStatus(int status) {
            this.status = status;
        }
    
        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;
        }
    
    }
  • 相关阅读:
    GitHub 实现多人协同提交代码并且权限分组管理
    前端第一篇文章-http标准
    介绍Android电量
    音频编码格式
    PPT
    Word
    HTML 之 JavaScript
    HTML 之 CSS
    HTML 之 HTTP 协议(请求协议以及响应协议)
    HTML 之 标签
  • 原文地址:https://www.cnblogs.com/mxh-java/p/14319420.html
Copyright © 2020-2023  润新知