如何缓存 Mono 对象

How to cache Mono object

我有以下代码:

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

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

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

我遇到了以下 但它仅用于查找,因为我也是反应式编程的初学者。

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

因此,您可以使用 doOnNext 将该实体保存在数据库中时也将其放入缓存中:

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

生成的 Mono<T> 将同时保存 然后 在实体被订​​阅时缓存它。