RequestContextHolder.getRequestAttributes()有时为空

时间:2017-07-04 15:09:17

标签: java spring

在我的Java Spring项目中,我使用

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder
                                         .getRequestAttributes())
                                         .getRequest();

在静态方法中定义以获取请求并获取一些会话属性。 spring-RequestContextListener已存在于我的web.xml中。问题是当某个单线程调用时,现在一切都很好。

但是当使用java8 parallelStream时,RequestContextHolder.getRequestAttributes()有时可能为空,我不知道为什么。

1 个答案:

答案 0 :(得分:0)

您的项目是春季还是春季靴子? 如果是春季启动,则使用RequestContextListener或RequestContextFilter公开一个bean

@Bean
  public RequestContextListener requestContextListener() {
    return new RequestContextListener();
  }

还请确保您没有任何用@EnableWebMvc注释的@Configuration类。这将删除spring boot的自动配置功能。<​​/ p>