将@ResponseBody 迁移到 ResponseEntity

Migrating @ResponseBody to ResponseEntity

我有一个旧控制器,其方法returns 一个对象作为 json 并标有@ResponseBody。

问题是状态代码总是 200,尽管有时不是。

当前方法签名是:

public MyResponse myMethod(){}

我想将其更改为:

public ResponseEntity<MyResponse> myMethod(){}

所有这些都不是问题,但我担心使用此控制器的客户端将无法解析响应。那可能吗? Spring 用另一个对象包装响应吗?

根据@RequestMapping (https://docs.spring.io/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html) 的 javadoc,ResponseEntity 的主体将被展开并写入响应输出流。所以输出应该是一样的。

当前版本 (https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-return-types) 的文档基本上说了同样的话。

Controller 将 return http 200 如果它执行无异常。 如果你 return ResponseEntity 对象 HttpStatus.OK 它应该工作。