1.通过主线程调用m1方法,请求头存在,sra 不为空
2.另起一个线程调用m1方法,请求头丢了,sra为null,网上找了好多方法,基本都是这样设置的,为啥我的不行。
@PostMapping(value = "/test")
public String postTest(HttpServletRequest request, @RequestBody Stu stu){
ExecutorService exe = Executors.newSingleThreadExecutor();
TestService testService = new TestService();
testService.m1();
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(sra, true);
CompletableFuture.runAsync(()->{
testService.m1();
},exe);
return "11";
}
class TestService {
int m1(){
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
try {//模拟远程调用 耗时5秒钟
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
return 1;
}
}