如何缓存Mono对象

时间:2018-03-31 10:57:45

标签: java reactive-programming project-reactor

我现在有以下代码,如下所示

final T savedEntity = repository.save(entity);
entityCacheService.putIntoCache(entity.getId(), savedEntity);

现在我的存储库被反应了。问题是如何使缓存存储现在单声道和通量。

final Mono<T> savedEntity = repository.save(entity);
entityCacheService.putIntoCache(entity.getId(), <<What here>>);

我遇到了以下raised an issue,但它仅用于查找,因为我也是反应式编程的初学者,有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

在您的情况下,最好的方法是依赖save操作返回发出已保存实体的Mono<T>这一事实。

因此,只要将该实体保存在DB中,您就可以使用doOnNext将该实体放入缓存中:

final Mono<T> savedEntity = repository.save(entity)
    .doOnNext(entity -> entityCacheService.putIntoCache(entity.getId(), entity);

生成的Mono<T>会在订阅时保存然后缓存实体。