有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSpringWebFlux网络客户端:延迟执行

当我这样定义和调用客户机方法时:

webClient.get()
            .uri(endpoint)
            .headers(this::configureHttpHeaders)
            .retrieve()
            .bodyToMono(String.class)

即使我对返回的Mono不做任何操作,retrieve方法也会被执行

我本以为只有在有人(订户?)时才会调用它实际上,我想从Mono上获取数据

为什么会马上打电话?我怎样才能改变这种行为

有关更多上下文:在我的示例中,我只希望在触发CacheFlux onCacheMissResume时执行它:

    Flux<T> defaulValue= client.getStringMono()
            .flatMapIterable(mapper::readObjects);

    CacheFlux.<String, T>lookup(key -> readFluxFromCache(cacheName, key), cacheKey)
                .onCacheMissResume(defaulValue)
                .andWriteWith((key, valueSignal) -> writeFluxToCache(cacheName, key, valueSignal))

共 (1) 个答案