扫码阅读
手机扫码阅读

Spring Boot 中如何统一 API 接口响应格式?

14 2024-11-06

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

查看原文:Spring Boot 中如何统一 API 接口响应格式?
文章来源:
江南一点雨
扫码关注公众号
Spring Boot 组件HandlerMethodReturnValueHandler介绍

HandlerMethodReturnValueHandler概述

松哥在新完成的Spring Boot视频教程中介绍了Spring Boot中的组件HandlerMethodReturnValueHandler。这个组件用于对控制器方法的返回值进行二次处理,允许对返回值进行加密或包装等操作。它提供了两个主要方法:supportsReturnType和handleReturnValue。

默认的HandlerMethodReturnValueHandler实现

Spring Boot提供了多个HandlerMethodReturnValueHandler的默认实现,每个实现类处理不同的返回值类型。例如,ViewNameMethodReturnValueHandler处理返回值为void或String的情况,ViewMethodReturnValueHandler处理View类型的返回值,而ModelAttributeMethodProcessor处理添加了@ModelAttribute注解的返回值类型等。

ModelAndViewContainer介绍

ModelAndViewContainer是一个在请求处理过程中负责数据传输的组件,包括Model和View数据以及其他参数。它决定了使用默认Model或重定向Model,并在请求处理完成时提供了标识。

自定义HandlerMethodReturnValueHandler

通过自定义HandlerMethodReturnValueHandler可以实现API接口数据包装的需求。松哥以返回数据外包裹一层作为例子,展示了如何实现这一功能。自定义处理器MyHandlerMethodReturnValueHandler基于RequestResponseBodyMethodProcessor处理JSON返回值,并在返回之前修改数据。

配置自定义HandlerMethodReturnValueHandler

为了使自定义的HandlerMethodReturnValueHandler生效,需要通过ReturnValueConfig类修改SpringMVC中的RequestMappingHandlerAdapter配置,将RequestResponseBodyMethodProcessor替换为自定义的处理器。

小结

统一API接口响应格式有多种方法,松哥提供了一种通过HandlerMethodReturnValueHandler实现的方案。这篇文章是松哥对SpringMVC源码解析的一部分,通过实例让源码解析更加生动。

想要了解更多内容?

查看原文:Spring Boot 中如何统一 API 接口响应格式?
文章来源:
江南一点雨
扫码关注公众号