报错场景
我想在controller里,起新线程调用同类下的另一个web接口方法,直接使用
new Thread(()->{
this.funcB();
}).start();
因为funcB也会用到session里的信息,所以会报错拿不到session。
解决方法
在起新线程前,添加子线程共享session即可
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(servletRequestAttributes,true);//设置子线程共享
new Thread(()->{
this.funcB();
}).start();
网友评论