我有一个 Spring Web 应用程序,它对外部 Web 服务进行 Http 调用,目前它使用 webflux 中的 WebClient 来进行此类调用,但每次它都使用 .block() ,因为我们不需要异步处理
public <T> T sendGetRequest(Class<T> responseType, URI uri) {
return webClient.get().uri(uri)
.headers(WebRequestUtil::setHeaders)
.retrieve()
.bodyToMono(responseType)
.block();
}
那么,问题是,既然没有异步编程,那么使用WebClient不是更好吗,或者使用WebClient配合.block()也可以
我不想做微观优化,我应该重构吗?
如果保留
WebClient
,您可以根据需要选择非阻塞,或者像当前一样继续阻塞。它以牺牲一行代码为代价提供了一种选择 (block
),因此,我认为没有任何理由使用 RestTemplate
。
PS:你的问题听起来像是在代码审查中提出的。不过这并没有什么问题。