来源:江南一点雨 这是最近一个小伙伴的提问,我觉得很有意思,和大伙聊一下。 小伙伴在工作中遇到类似下面这样一段代码: @RestController public class BookController { @PostMapping("/book") public void hello(@RequestBody Book book, @RequestBody Page page) { System.out.println("book = " + book); System.out.println("page = " + page); } } 按照他的理解,@RequestBody 注解的作用就是把请求体中的值解析为一个对象,一个请求只有一个请求体,请求体中的数据是通过 IO 流读取出来的,IO 有一个特点是读一次就没了。所以我们在日常开发中,一般接口方法的参数中只存在一个 @RequestBody 注解,不会存在两个该注解。 但是这个小伙伴在项目中遇到了类似上面的代码,他不理解为什么可以写两个 @RequestBody 注解,今天松哥就来和大家分析一下这问题。 1.