在 Spring Web MVC 项目中通常我们可以直接使用 ThreadLocal 对值进行保存,同一次请求内多次获取都能拿到值。 但是在 Web Flux 中一个请求可能经过不同线程,所以无法使用这种方法。可以使用 Mono 对象的 context 功能来替代。
Spring Boot 版本
2.6.3
值的保存
使用 Mono 的 contextWrite 方法保存值。
public final Mono<T> contextWrite(Function<Context, Context> contextModifier) {
return onAssembly(new MonoContextWrite(this, contextModifier));
}
小于 1 分钟