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