小编Tom*_*mba的帖子

Spring Webflux和@Cacheable - Mono/Flux类型的缓存结果的正确方法

我正在学习Spring WebFlux,在编写示例应用程序时,我发现了与Reactive类型(Mono/Flux)结合Spring Cache的问题.

考虑以下代码片段(在Kotlin中):

@Repository
interface TaskRepository : ReactiveMongoRepository<Task, String>

@Service
class TaskService(val taskRepository: TaskRepository) {

    @Cacheable("tasks")
    fun get(id: String): Mono<Task> = taskRepository.findById(id)
}
Run Code Online (Sandbox Code Playgroud)

这种有效且安全的缓存方法调用是返回Mono还是Flux?也许还有其他一些原则可以做到这一点?

以下代码使用SimpleCacheResolver,但默认情况下使用Redis失败,因为Mono不是Serializable.为了使它们工作,例如需要使用Kryo序列化器.

spring-boot spring-cache spring-webflux

10
推荐指数
1
解决办法
7444
查看次数

标签 统计

spring-boot ×1

spring-cache ×1

spring-webflux ×1