java – Spring @Cacheable和@Async注释

我需要缓存一些异步计算的结果.详细地说,为了克服这个问题,我试图使用Spring 4.3缓存和异步计算功能.

举个例子,我们来看下面的代码:

@Service
class AsyncService {
    @Async
    @Cacheable("users")
    CompletableFuture<User> findById(String usedId) {
        // Some code that retrieves the user relative to id userId
        return CompletableFuture.completedFuture(user);
    }
}

可能吗?我的意思是,Spring的缓存抽象是否会正确处理CompletableFuture< User>类型的对象?我知道Caffeine Cache有类似的东西,但我无法理解如果Spring正确配置它是否会使用它.

编辑:我对User对象本身不感兴趣,但是在表示计算的CompletableFuture中.

最佳答案
根据SPR-12967,不支持ListenableFuture(CompletableFuture).

转载注明原文:java – Spring @Cacheable和@Async注释 - 代码日志