为什么@RepositoryRestController 不像@RestController 那样有@ResponseBody 注解?

Why does @RepositoryRestController do not have @ResponseBody annotation like @RestController?

我正在使用 Spring-data-rest 并想知道 @RestController 也有 @ResponseBody@RepositoryRestController 没有的事实背后是否有原因。

Spring 数据 REST 中的所有控制器都使用该注释 return 和 ResponseEntity<T>,因此技术上 @ResponseBody 不需要。

我们通常更喜欢 ResponseEntity 作为 return 类型,原因有两个:

  1. 在为 REST 请求提供服务的控制器方法中,您通常希望控制响应的详细信息(headers、状态代码等),ResponseEntity 正是其类型。
  2. Spring MVC 检测到 ResponseEntity,因此我们不需要附加注释。

我不确定我们是否真的可以改变它,因为尽管有注释的名称,但仍然有可能仍然使用视图分辨率的实现。如果您仍然认为这是个好主意,请随时在我们的 JIRA.

中提出问题