侧边栏壁纸
博主头像
会飞的大象博主等级

爱运动的程序猿

  • 累计撰写 126 篇文章
  • 累计创建 158 个标签
  • 累计收到 0 条评论
标签搜索

目 录CONTENT

文章目录

springboot返回数据封装

会飞的大象
2022-08-03 / 0 评论 / 0 点赞 / 554 阅读 / 140 字

返回数据封装

1.实现ResponseBodyAdvice,加入注解RestControllerAdvice,在beforeBodyWrite中实现

@RestControllerAdvice
public class ResponseResultBodyAdvice
  implements ResponseBodyAdvice<Object>
{
  private static final Logger log = LoggerFactory.getLogger(ResponseResultBodyAdvice.class);
  private static final Class<? extends Annotation> ANNOTATION_TYPE = ResultJson.class;
  @Autowired
  private ObjectMapper objectMapper;
  
  public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType)
  {
    return true;
  }
  
  public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response)
  {
    if ((body instanceof BaseResponse))
    {
      BaseResponse baseResponse = (BaseResponse)body;
      StringBuilder sb = new StringBuilder();
      sb.append("请求的服务端方法:").append(((ServletServerHttpRequest)request).getServletRequest().getRequestURI());
      return Result.failure(baseResponse.getCode(), baseResponse.getMessage(), sb.toString());
    }
    if ((body instanceof Result)) {
      return body;
    }
    return Result.success(body);
  }
}
0

评论区