我们可以通过在@ControllerAdvice注解类上实现ResponseBodyAdvice注解来实现统一返回值类型;
例如统一接口的返回类型为Result类
@ControllerAdvice
static class MyControllerAdvice implements ResponseBodyAdvice<Object> {@Overridepublic boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {// 判断满足加了@ResponseBody注解的方法才进行格式的同义转换例如统一转为Result: {code: message: data: }return true;}// 转换类型@Overridepublic Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {if(body instanceof Result){return body;}return new Result.ok(body);}}@Data
static class Result<T>{private String code;private String message;private T data;
}