参考链接
我们想要在一个项目中,controller层返回的接口都是一样的,那么我们需要实现
ResponseBodyAdvice 这个接口:
比如:
@ControllerAdvice(basePackages = "cn.iocoder.springboot.lab23.springmvc.controller")
public class GlobalResponseBodyHandler implements ResponseBodyAdvice {
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType,
ServerHttpRequest request, ServerHttpResponse response) {
// 如果已经是 CommonResult 类型,则直接返回
if (body instanceof CommonResult) {
return body;
}
// 如果不是,则包装成 CommonResult 类型
return CommonResult.success(body);
}
}
就统一封装成CommonResult对象返回出去