春天实施Guavas Futures.transform

时间:2016-02-02 01:27:21

标签: java spring guava

我知道spring有自己的ListenableFuture实现,但是它有Futures.transform的类似实现吗?我试图找到一种方法,使用spring提供的类链接操作,但我只看到使用Guava的例子。

1 个答案:

答案 0 :(得分:0)

Springs实现似乎是ListenableFutureAdapter

以下是一个例子:

@Service
public class HeavyLiftingServiceImpl implements IHeavyLiftingService {

    public ListenableFuture<String> heavyLifting() {
        AsyncRestTemplate asycTemp = new AsyncRestTemplate();
        ListenableFuture<String> future = asycTemp.execute(url, method, requestCallback, responseExtractor, urlVariable);

        ListenableFutureAdapter<String, String> chainedFuture;
        chainedFuture = new ListenableFutureAdapter<String, String>(future) {

            @Override
            protected String adapt(String adapteeResult)
                    throws ExecutionException {
                        String parsedString = parse(adapteeResult);
                        return adapteeResult;
            }
        };

        return chainedFuture;
    }

}

我建议使用Guava实现可听的未来。它更具可读性,并且有更多关于将它们链接在一起的文档