由於4.1
版的網關可以返回反應器2.0 Promise<?>
:
@MessagingGateway
public static interface TestGateway {
@Gateway(requestChannel = "promiseChannel")
Promise<Integer> multiply(Integer value);
}
...
@ServiceActivator(inputChannel = "promiseChannel")
public Integer multiply(Integer value) {
return value * 2;
}
...
Streams.defer(Arrays.asList("1", "2", "3", "4", "5"))
.get()
.map(Integer::parseInt)
.mapMany(integer -> testGateway.multiply(integer))
.collect()
.consume(integers -> ...)
.flush();
與已更改爲反應堆3.1 Mono
5.0
版本開始。
我很確定有一些適配器可以將這些類型轉換爲RxJava的有價值的東西。
的CompletableFuture<?>
因爲4.2
版本也支持網關:
CompletableFuture<String> process(String data);
...
CompletableFuture result = process("foo")
.thenApply(t -> t.toUpperCase());
...
String out = result.get(10, TimeUnit.SECONDS);
http://docs.spring.io/spring-integration/reference/html/messaging-endpoints-chapter.html#async-gateway
感謝@artem。這有助於 – Harry