使用Spring框架,在Service中開啓一個新的線程,在新的線程中使用
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
獲取出來爲null,有沒有什麼辦法能解決?多線程
Service中爲優化響應時間,使用了多線程,部分線程中使用到了RequestContextHolder類,結果返回值爲空。框架
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
ServletRequesRequestContextHolder.getRequestAttributes()tAttributes sra = (ServletRequestAttributes) ra;
HttpServletRequest request = sra.getRequest();
System.out.println(request.getContextPath());優化
期待:System.out.println(request.getContextPath());正常打印出路徑,
實際:RequestAttributes ra = RequestContextHolder.getRequestAttributes();spa
開啓新線程以前,添加代碼:
//將RequestAttributes對象設置爲子線程共享
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
RequestContextHolder.setRequestAttributes(sra, true);線程