在Sping Boot RestController中,我使用springframework类ResponseEntity返回端点调用的响应。
我最近发现有两种方法可以示例化这个类。
使用构造函数:
response = new ResponseEntity<MyDto>(myDto, myHeaders, HttpStatus.OK);
使用静态构建器:
response = ResponseEntity.ok().headers(myHeaders).body(myDto);
结果示例看起来是相同的。
我想知道,每种方法的优点和缺点是什么?在什么情况下我应该最好使用一种或另一种?
3条答案
按热度按时间r6l8ljro1#
使用构造函数时,你必须预先构造它的参数,而使用构建器时,你可以在一个流畅的语句中完成。
另外,对于有一长串参数的构造函数,很难看到每个参数的语义。在这种情况下,我更喜欢使用构建器。
b09cbbtk2#
如果你有很多相似的端点需要定义,比如定义一个新的API,我发现从长远来看,使用构造函数更好,因为随着时间的推移,使用静态构造函数会导致重复的代码。
特别是在报头的情况下;Content-Type、Accept、Encoding等必须在所有响应上进行设置,并且在每个控制器方法中写出每一个都很麻烦。使用构造函数将这些样板代码分离到一个单独的函数中会更容易。
这就是我的感受,无论如何。
hi3rlvi23#
所以答案似乎是“你可以根据你个人的代码偏好,无所谓地做一个或另一个”