多线程子线程获取不到主线程的request
使用多线程时有时候会碰到子线程获取不到主线程的request
原因是子线程还未执行完成而主线程已经执行完毕则导致子线程获取不到
我们只需要加上两句代码即可
// RequestAttributes对象设置为子线程共享
// 解决开启多线程时子线程获取不到主线程的request
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(attributes, true);
我还遇到一个问题则是即时按照上面设置共享,但是获取不到主线程的header,目前使用了一个笨方法则是把主线程的header需要使用的参数在主线程内拿出来定义一个变量提供给子线程使用。。。惭愧