我有一个旧的控制器,其方法将对象作为json返回并用@ResponseBody标记。
问题在于状态代码始终为200,尽管有时并非如此。
当前的方法签名是:
public MyResponse myMethod(){}
我希望将其更改为:
public ResponseEntity<MyResponse> myMethod(){}
所有这些都不是问题,但我担心使用此控制器的客户端将无法解析响应。那可能吗?做Spring用另一个对象包装响应吗?
答案 0 :(得分:3)
根据@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)的文档说的基本相同。
答案 1 :(得分:0)
如果执行器无异常,将返回http 200。 如果您使用HttpStatus.OK返回ResponseEntity对象,它应该可以正常工作。