您的位置:首页 > 房产 > 家装 > @ControllerAdice统一返回值类型【Spring源码学习】

@ControllerAdice统一返回值类型【Spring源码学习】

2024/10/6 12:19:29 来源:https://blog.csdn.net/weixin_44794897/article/details/140208618  浏览:    关键词:@ControllerAdice统一返回值类型【Spring源码学习】

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com