自定义 ReturnValueConfig 实现 InitializingBean 接口,afterPropertiesSet 方法会被自动调用,在该方法中,我们将 RequestMappingHandlerAdapter 中已经配置好的 HandlerMethodReturnValueHandler 拎出来挨个检查,如果类型是 RequestResponseBodyMethodProcessor,则重新构建,用我们自定义的 MyHandlerMethodReturnValueHandler 代替它,最后给 requestMappingHandlerAdapter 重新设置 HandlerMethodReturnValueHandler 即可 。
最后再提供一个测试接口:
@RestControllerpublic class UserController { @GetMapping("/user") public User getUserByUsername(String username) { User user = new User(); user.setUsername(username); user.setAddress("www.javaboy.org"); return user; }}public class User { private String username; private String address; //省略其他}配置完成后,就可以启动项目啦 。
项目启动成功后,访问 /user 接口,如下:

文章插图
完美 。
4.小结其实统一 API 接口响应格式办法很多,可以参考松哥之前分享的 如何优雅的实现 Spring Boot 接口参数加密解密?,也可以使用本文中的方案,甚至也可以自定义过滤器实现 。
本文的内容稍微有点多,不知道大家有没有发现松哥最近发了很多 SpringMVC 源码相关的东西,没错,本文其实是松哥 SpringMVC 源码解析的一部分,为了源码解析不那么枯燥,所以强行加了一个案例进来,祝小伙伴们学习愉快~
推荐阅读
- 宝宝一直怕怎么办呢
- 孕妇半夜口水有血丝
- 中国最值钱的古董排行榜 中国最值钱的古董排行榜
- 美国人看待中国人 中美两国人的性格差异
- 中药飞燕草图片,飞燕草怎么播种
- 中国姓氏排名前十的有哪些 中国十大姓氏排十名
- 宇宙中是否存在外星生命 宇宙里哪个星球上可能存在外星人
- 拍到不明飞行物 空中不明飞行物图片
- 中国三大雕塑 全国十大最丑雕像
- 皮肤瘙痒是病吗
