问题代码:
@GetMapping ("/detail/{id}")
public Document detail(@PathVariable("id") String id){
return documentService.getById(id);
}
问题描述:同代码,同一个springboot程序,在本地运行,接收相同请求都能做出响应。但是放到云服务器上运行时,接收相同的请求却只回应第一次的请求? 即小程序访问发送相同参数请求多次访问接口A,服务器只返回第一次请求的结果。 只有过一会访问接口A,或者访问A完,访问B,再访问A才又有数据。
疑惑:一开始没有怀疑代码问题,因为代码相同,环境相同,本地运行没有问题,即控制变量法失效了。控制器也没有报错。 验证: 1.线上数据库没问题 2.log打印日志没问题
破案线索: 有一个update接口C和接口A需要同时执行,但是C接口不会出现上述问题。于是开始怀疑可能是代码的问题。
解决:很抽象,把Get请求换成Post请求后就解决了问题。
@PostMapping ("/detail")
public Document detail(@RequestBody Document document){
return documentService.getById(document.getId());
}