使用Java 8并行Stream时,松散Java EE请求范围是否正常?

时间:2017-04-25 09:51:11

标签: java java-ee jboss java-8 wildfly

在我们公司,我们正在开发一个在wildfly 10.1中运行的准标准REST服务。每个请求都拥有一个租户标题,该标题将被过滤器拦截,租户信息将存储在@RequestScoped bean中,以便以后在其余或服务层内使用。到现在为止还挺好。 现在我们发现服务中的一些代码使用的是Java 8并行流,并且无法使用@RequestScoped bean来查找当前的租户。 我们多次验证了这一点。使用非并行流为我们解决了这个问题。

这是正常行为吗?我们真的很困惑,使用标准的Java 8功能会破坏我们预期的容器行为。

我们需要关注其他任何此类罪魁祸首吗?

1 个答案:

答案 0 :(得分:4)

It seems比并行将在托管上下文中生成线程。

然而,使用ThreadLocal处理RequestScoped(我们仍处于良好的旧多线程模型中,即http请求= 1个线程)。

所以是的,这是正常的