Spring Boot RestController 中返回 void 和 ResponseEntity<Void> 有啥区别?
Posted
技术标签:
【中文标题】Spring Boot RestController 中返回 void 和 ResponseEntity<Void> 有啥区别?【英文标题】:What is the difference between returning void and ResponseEntity<Void> in Spring Boot RestController?Spring Boot RestController 中返回 void 和 ResponseEntity<Void> 有什么区别? 【发布时间】:2022-01-23 01:05:47 【问题描述】:不知道 Spring Boot RestController 的返回值如果返回 void 有什么区别?
无论哪种方式,我都可以看到测试中的差异。似乎即使我返回 void HttpStatus.NO_CONTENT
(204) 也会返回给请求者,就像我使用 ResponseEntity<Void>
一样。
所以,当我从端点返回 void
时,无论如何都会返回 HttpStatus,我选择 void
还是 ResponseEntity<Void>
都没关系?
【问题讨论】:
【参考方案1】:没错。如果你想添加一些标题,你需要ResponseEntity<Void>
。
【讨论】:
在我的测试中我做 mockMvc... .andExpect(status().isNoContent());无论哪种方式,它都是成功的。因此,当返回类型为原始 void 时,HttpStatus 似乎也被发送给请求者。那么我为什么要使用 ResponseEntity以上是关于Spring Boot RestController 中返回 void 和 ResponseEntity<Void> 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
spring Restcontroller 或 RepositoryRestResource 用啥
Spring:RestController 和 Controller 的不同异常处理程序
为啥 Spring Boot 应用程序 pom 同时需要 spring-boot-starter-parent 和 spring-boot-starter-web?