禁用 Spring mvc 的自动序列化

问题描述 投票:0回答:1

使用 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 一次,这并不一定是因为它已经被序列化了。

java spring-mvc serialization
1个回答
1
投票

好吧,经过一些测试和阅读,我确实找到了解决方案或其他东西,但我想所有那些纯粹主义者都会痛苦地尖叫。问题是 spring 自动设置

@RequestMapping(produces="application/json")
但如果我更改为
@RequestMapping(produces="text/plain")
它无需进行两次反序列化即可工作。

这是经过我修复的新代码:

 @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;
 }
© www.soinside.com 2019 - 2024. All rights reserved.