请教一个问题,项目中会用到RequestContextHolder.currentRequestAttributes()获取请求里的request数据,比如拿到header数据之类的。但是这个request有个复用机制,也就是在每次请求结束返回给前端响应之后,他会清除掉一部分的数据(包括header数据)以此来为下次的请求做准备。

这就导致一个问题,我在请求内启动的非阻塞的异步线程获取request数据,如果这时候主线程的请求正好结束并返回了响应,request里的attribute数据就会被清除,这时候异步线程里获取到的request可能是没有header数据的,请问这种问题是怎么解决的?


RequestContextHolder.setRequestAttributes(requestAttributes);这个方式只有主线程等待异步结果的情况下才有用,我的情况是异步方法无需主线程等待)
展开
14