例如,如果我有多种类型的电子设备请求大型文件,那么每种设备类型具有单独的端点(或控制器)是否有任何优势(除了可读性和整洁性),如下所示:
@RequestMapping(value = "/device/tablet", method = GET)
public List<Object> getTabletFile(@RequestBody Object body){
// code here
}
@RequestMapping(value = "/device/laptop", method = GET)
public List<Object> getLaptopFile(@RequestBody Object body){
// code here
}
与此相反:
@RequestMapping(value = "/device/{type}", method = GET)
public List<Object> getFiles(@PathVariable("type") String type, @RequestBody Object body){
// code here
}
我想在性能方面,如果预计系统会有高负载?
答案 0 :(得分:2)
TL; DR:别担心。
接受和解析新HTTP请求的开销 way 高于从URI中提取一个路径变量的开销。
Spring MVC调度例程经过大量优化;我希望解析路径变量的开销大约为纳秒级。
当然它还取决于你对控制器内部type
参数的处理方式。如果你只是在switch
语句中使用它,那么它应该很快,如果你做更多的查找/日志记录/不区分大小写的匹配/等。然后开销会更高。