Java SpringWebFlux是否在每个请求的单个线程中调用SingleHandlerFunction?

Java SpringWebFlux是否在每个请求的单个线程中调用SingleHandlerFunction?,java,spring,multithreading,spring-webflux,reactor,Java,Spring,Multithreading,Spring Webflux,Reactor,考虑下面的代码段-将简单的非线程安全HashMap传递给将在SomeHandlerFunction中的其他自动连接bean中使用它的SomeHandlerFunction安全吗 @Bean RouterFunction请求(SomeHandlerFunction handlerFunction){ setSimpleApproperties(新的HashMap()); 返回路线(GET(“/dummy”)、handlerFunction; } @服务 类SomeHandlerFunction实现

考虑下面的代码段-将简单的非线程安全HashMap传递给将在
SomeHandlerFunction
中的其他自动连接bean中使用它的
SomeHandlerFunction
安全吗

@Bean
RouterFunction请求(SomeHandlerFunction handlerFunction){
setSimpleApproperties(新的HashMap());
返回路线(GET(“/dummy”)、handlerFunction;
}
@服务
类SomeHandlerFunction实现HandlerFunction{
@自动连线
列出其他豆;
Mono句柄(ServerRequest var1){
//代码。。。
}
}

我对WebFlux中的多线程模型有点了解,但这个例子让我感到困惑。

如果HashMap是可变的,那就不是一个好主意,即使使用Spring MVC也是如此。 你应该怎么做?这实际上取决于手头的用例

如果您试图设置一个本地内存缓存,您可以使用类似Caffeine的库,或者简单地使用
ConcurrentMapCache

如果您想与该bean共享配置键,您可以使用
集合包装该映射。不可修改映射
或者更好,使其成为适当的不可变POJO


如果这意味着要携带与正在处理的请求相关联的临时数据,那么您应该使用请求属性或反应器上下文进行处理。

不,无论使用何种技术,这样做都是不安全的。