【发布时间】:2021-10-06 16:28:37
【问题描述】:
@RestController
public class TestController {
@GetMapping(path = "/demo")
public ResponseEntity<?> test() {
User user = new User();
user.setAge("12");
HttpHeaders responseHeaders = new HttpHeaders();
return new ResponseEntity<>(user, responseHeaders, HttpStatus.OK);
}
}
我查看了一些文档,发现有些人会这样写:
rResponseEntity.ok().headers(responseHeaders).body(user);
new ResponseEntity<>(user, responseHeaders, HttpStatus.OK); 和 ResponseEntity.ok().headers(responseHeaders).body(user); 有什么区别?首选哪种方式?谢谢。
【问题讨论】:
-
没有推荐的方法 AFAIK,使用您喜欢的方法。第二个通过构建器可以说更容易阅读,但这是一个偏好问题。
-
为什么我们可以写
ResponseEntity.ok().headers(responseHeaders).body(user);?这里有逻辑支持吗? -
不,它只是跟随builder pattern 和
.body(user)最终调用new ResponseEntity<>(...)。 -
我更喜欢让方法直接返回类型(在您的示例中为
User)并在出现问题时使用异常(例如ResponseStatusException)。但正如@sp00m 已经说过的那样,这真的是品味问题。 -
@slauth 如果我使用异常应该如何修改代码?谢谢。
标签: spring spring-boot spring-data-jpa