今天我在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()等时。 –