1

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

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

 @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再序列化一次,不一定是因为它已经序列化了。

4

1 回答 1

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;
 }
于 2013-11-15T13:25:25.917 回答