我們可以通過在@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;
}