WEB开发中有这样的需求: 返回给前台的数据需要有统一格式。但是在controller的每个mapping中手写包装很是麻烦,所以可以自定义返回值处理器进行结果包装。
文章目录
返回给前台的消息格式
package net.mshome.twisted.tmall.common;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import net.mshome.twisted.tmall.enumeration.ErrorCode;
/**
* 返回给前台的消息包装类
*
* @author tangjizhouchn@foxmail.com
* @date 2019-08-18
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ResultWrapper<T> {
@Builder.Default
private int code = ErrorCode.OK.getValue();
@Builder.Default
private String message = "操作成功";
private T result;
}
自定义的返回值处理器
package net.mshome.twisted.tmall.handler;
import net.mshome.twisted.tmall.common.ResultWrapper;
import net.mshome.twisted.tmall.exception.TmallException;
import org.springframework.core.MethodParameter;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.HttpMessageNotWritableException;
import org.springframework.lang.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.web.HttpMediaTypeNotAcceptableException;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web