在实践中发现,通过id获取资源信息接口响应时间比page接口都要长。
在排除了数据量大、索引等原因后,发现是由于PathVariable带来的额外消耗。
同样逻辑的两个方法,方法1的速度时间要大于方法2,而且方法1的相应时间随着Controller中get方法数量的变多而继续变大。
因此推测使用PathVariable会带来额外的寻址时间,网上也有类似的说法https://www.cnblogs.com/aboruo/p/10575105.html。
所以PathVariable还是需要谨慎使用。
[pre]
// 方法1
@GetMapping("{id}")
public Result get(@PathVariable("id") Long id) {
return new Result<>().ok(data);
}
// 方法2
@GetMapping("info")
public Result info(Long id) {
return new Result<>().ok(data);
}
[/pre]