在一次请求中,我们通常通过RequestContextHolder.getRequestAttributes()获取请求中的变量。
但是有时候我们需要异步处理业务,子线程从RequestContextHolder中取出的为null
解决办法:
开启新线程之前,添加代码:
//将RequestAttributes对象设置为子线程共享
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(sra, true);