禁用Spring mvc的自动序列化

时间:2013-11-15 09:39:54

标签: java spring-mvc serialization

使用spring mvc 3时是否可以禁用自动序列化?

我们已经切换到使用spring mvc但序列化已经完成,所以我们不想使用自动序列化。是否可以禁用该功能并使spring按原样返回字符串?

 @RequestMapping(value = "/test", method = RequestMethod.GET)
 @ResponseBody
 public ResponseEntity<String> justReturnMyResponse() {
     return new ResponseEntity<String>(getAllreadySerializedObject(), HttpStatus.OK);;
 }

 String getAllreadySerializedObject(){
       // Some special serialization
       ....
       return jsonizedString;
 }

上面的代码再次序列化String,这不一定是因为它已经被序列化了。

1 个答案:

答案 0 :(得分:0)

好吧,经过一些测试和阅读后,我确实找到了一个解决方案,但我猜这些纯粹主义者都会痛苦地尖叫。问题是spring自动设置了@RequestMapping(produces="application/json"),但是如果我改为@RequestMapping(produces="plain/text")则无需进行两次反序列化。

以下是我修复的新代码:

 @RequestMapping(value = "/test", method = RequestMethod.GET, produces = "plain/text")
 @ResponseBody
 public ResponseEntity<String> justReturnMyResponse() {
     return new ResponseEntity<String>(getAllreadySerializedObject(), HttpStatus.OK);;
 }

 String getAllreadySerializedObject(){
       // Some special serialization
       ....
       return jsonizedString;
 }