是否有必要序列化对象以使用@RequestBody @ResponseBody注释

时间:2014-11-15 16:59:31

标签: spring rest spring-mvc serialization

是否在控制器方法中将参数作为参数传递,并使用@RequestBody注释来标记实现Serializable接口?

对于由@ResponseBody注释标记的返回值类,我有同样的问题。

我也非常感谢解释为什么Serializable界面是必需的。

1 个答案:

答案 0 :(得分:5)

没有。当您从使用@ResponseBody注释的控制器方法返回实例时,您可能会说它被序列化为JSON。但是这种序列化不是涉及Serializable接口的Java序列化。

@RequestBody@ResponseBody注释由RequestResponseBodyMethodProcessor处理,它使用HttpMessageConverter实现来执行转换,例如从对象到JSON或从JSON到对象。

当您查看HttpMessageConverter接口时,有一个canRead方法具有以下签名:boolean canRead(Class<?> clazz, MediaType mediaType);,您可以看到它不仅限于使用泛型的可序列化类。

来源和更多信息