返回数据封装
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);
}
}
评论区