ResponseEntity 的用途是什么?为什么要保留它?

Pha*_*ate 4 spring-mvc spring-boot

我可以通过两种方式定义 GET 方法:

public ResponseEntity<Pet> getPetById(Long id);
Run Code Online (Sandbox Code Playgroud)

public Pet getPetById(Long id);
Run Code Online (Sandbox Code Playgroud)

它们似乎是等效的,只是第一个涉及更多样板代码。那么,使用 ResponseEntity 的原因是什么以及它带来了哪些优势?

小智 5

这种差异很容易解释。当您使用 ResponseEntity 时,您可以完全控制响应的内容。你可以改变你的标题,状态代码,...当你不使用ResponseEntity作为控制器方法的返回类型时,spring将“自动”创建一个默认的ResponseEntity。

所以使用ResponseEntity的最大优势是你拥有完全的控制权。缺点是它比让 Spring 发挥它的魔力更加冗长。