一个类是否在控制器方法中作为参数传递,并由实现Serializable
接口所需的@RequestBody
注释标记?
我对用@ResponseBody
注释标记的返回值类有同样的问题。
我也非常感谢解释为什么需要或不需要Serializable
接口。
它没有。当您从带有@ResponseBody
注释的控制器方法返回实例时,您可能会说它被序列化为 JSON。但这种序列化不是涉及Serializable
接口的Java序列化。
@RequestBody
和@ResponseBody
注释由RequestResponseBodyMethodProcessor
处理,使用HttpMessageConverter
实现来执行转换,例如从对象到JSON或从JSON到对象。
当您查看HttpMessageConverter
接口时,有一个具有以下签名的canRead
方法:boolean canRead(Class<?> clazz, MediaType mediaType);
,正如您所看到的,它不仅仅绑定到使用泛型的可序列化类。
来源和更多信息
- RequestResponseBodyMethodProcessor JavaDoc
- HttpMessageConverter JavaDoc