我正在学习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序列化器.