今天我在AsyncRestTemplate上做了一些實驗。下面是一塊示例代碼:AsyncRestTemplate何時發送請求?
ListenableFuture<ResponseEntity<MyObject[]>> result
= asyncRestTemplate.getForEntity(uri, MyObject[]);
List<MyObject> objects = Arrays.asList(result.get().getBody());
令我驚訝的,該請求未發送至在第一行URI(即主叫getForEntity後),但result.get後發送()被調用。
這不是一種同步的做事方式嗎?
它正在第一行開始請求。 (確切地說,它只是安排請求,很可能沒有實際的HTTP流量後,該行代碼呢:) – zapl
嗨,我今天做了一些測試,確認AsyncRestTemplate發送請求將調用get()或addCallback() ,而不是在調用getForEntity()或exchange()等時。 –